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

Function Test_varyManifest_StoreLoad

middleware/cache/coverage_test.go:459–494  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

457}
458
459func Test_varyManifest_StoreLoad(t *testing.T) {
460 t.Parallel()
461
462 m := newManager(newFailingCacheStorage(), false)
463 ctx := context.Background()
464
465 // Empty names is a no-op store.
466 require.NoError(t, storeVaryManifest(ctx, m, "mk", nil, time.Minute))
467
468 // Missing manifest -> no names, no error.
469 names, ok, err := loadVaryManifest(ctx, m, "mk")
470 require.NoError(t, err)
471 require.False(t, ok)
472 require.Nil(t, names)
473
474 // Store and load a real manifest.
475 require.NoError(t, storeVaryManifest(ctx, m, "mk", []string{"accept", "accept-encoding"}, time.Minute))
476 names, ok, err = loadVaryManifest(ctx, m, "mk")
477 require.NoError(t, err)
478 require.True(t, ok)
479 require.Equal(t, []string{"accept", "accept-encoding"}, names)
480
481 // A wildcard manifest is treated as uncacheable.
482 require.NoError(t, m.setRaw(ctx, "star", []byte("*"), time.Minute))
483 names, ok, err = loadVaryManifest(ctx, m, "star")
484 require.NoError(t, err)
485 require.False(t, ok)
486 require.Nil(t, names)
487
488 // Storage error propagates.
489 storage := newFailingCacheStorage()
490 storage.errs["get|mk"] = errors.New("boom")
491 mErr := newManager(storage, false)
492 _, _, err = loadVaryManifest(ctx, mErr, "mk")
493 require.ErrorContains(t, err, "boom")
494}
495
496func Test_makeBuildVaryKeyFunc(t *testing.T) {
497 t.Parallel()

Callers

nothing calls this directly

Calls 6

newFailingCacheStorageFunction · 0.85
storeVaryManifestFunction · 0.85
loadVaryManifestFunction · 0.85
newManagerFunction · 0.70
NewMethod · 0.65
setRawMethod · 0.45

Tested by

no test coverage detected