MCPcopy
hub / github.com/gofiber/fiber / Test_App_ReloadViews_PanicUnlocksRender

Function Test_App_ReloadViews_PanicUnlocksRender

app_test.go:2269–2314  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2267}
2268
2269func Test_App_ReloadViews_PanicUnlocksRender(t *testing.T) {
2270 t.Parallel()
2271
2272 view := &panicLoadView{}
2273 app := New(Config{Views: view})
2274 app.Get("/", func(c Ctx) error {
2275 return c.Render("home", nil)
2276 })
2277 handler := app.Handler()
2278
2279 type reloadResult struct {
2280 err error
2281 recovered any
2282 }
2283
2284 reloadDone := make(chan reloadResult, 1)
2285 go func() {
2286 result := reloadResult{}
2287 defer func() {
2288 result.recovered = recover()
2289 reloadDone <- result
2290 }()
2291
2292 result.err = app.ReloadViews()
2293 }()
2294
2295 select {
2296 case result := <-reloadDone:
2297 require.NoError(t, result.err)
2298 require.Equal(t, "panic load", result.recovered)
2299 case <-time.After(time.Second):
2300 t.Fatal("reload panic was not recovered")
2301 }
2302
2303 renderDone := make(chan int, 1)
2304 go func() {
2305 renderDone <- runGetHandlerRequest(handler, "/")
2306 }()
2307
2308 select {
2309 case status := <-renderDone:
2310 require.Equal(t, StatusOK, status)
2311 case <-time.After(time.Second):
2312 t.Fatal("render request did not finish after reload panic")
2313 }
2314}
2315
2316func Test_App_InitPanicUnlocksRouteRegistration(t *testing.T) {
2317 t.Parallel()

Callers

nothing calls this directly

Calls 7

runGetHandlerRequestFunction · 0.85
HandlerMethod · 0.80
ReloadViewsMethod · 0.80
NewFunction · 0.70
GetMethod · 0.65
RenderMethod · 0.65
FatalMethod · 0.65

Tested by

no test coverage detected