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

Function Test_App_RenderPanicUnlocksReloadViews

app_test.go:2357–2406  ·  app_test.go::Test_App_RenderPanicUnlocksReloadViews
(t *testing.T)

Source from the content-addressed store, hash-verified

2355}
2356
2357func Test_App_RenderPanicUnlocksReloadViews(t *testing.T) {
2358 t.Parallel()
2359
2360 app := New(Config{Views: &panicRenderView{}})
2361 app.Get("/", func(c Ctx) error {
2362 return c.Render("home", nil)
2363 })
2364
2365 type renderResult struct {
2366 err error
2367 recovered any
2368 }
2369
2370 renderDone := make(chan renderResult, 1)
2371 go func() {
2372 result := renderResult{}
2373 defer func() {
2374 result.recovered = recover()
2375 renderDone <- result
2376 }()
2377
2378 app.startupProcess()
2379
2380 request := &fasthttp.RequestCtx{}
2381 request.Request.Header.SetMethod(MethodGet)
2382 request.URI().SetPath("/")
2383
2384 app.defaultRequestHandler(request)
2385 }()
2386
2387 select {
2388 case result := <-renderDone:
2389 require.NoError(t, result.err)
2390 require.Equal(t, "panic render", result.recovered)
2391 case <-time.After(time.Second):
2392 t.Fatal("render panic was not recovered")
2393 }
2394
2395 reloadDone := make(chan error, 1)
2396 go func() {
2397 reloadDone <- app.ReloadViews()
2398 }()
2399
2400 select {
2401 case err := <-reloadDone:
2402 require.NoError(t, err)
2403 case <-time.After(time.Second):
2404 t.Fatal("reload did not finish after render panic")
2405 }
2406}
2407
2408func Test_App_ReloadViews_NoEngine(t *testing.T) {
2409 t.Parallel()

Callers

nothing calls this directly

Calls 10

startupProcessMethod · 0.80
SetMethodMethod · 0.80
SetPathMethod · 0.80
URIMethod · 0.80
defaultRequestHandlerMethod · 0.80
ReloadViewsMethod · 0.80
NewFunction · 0.70
GetMethod · 0.65
RenderMethod · 0.65
FatalMethod · 0.65

Tested by

no test coverage detected