package apperr import ( "context" "errors" "testing" "github.com/carlosframework/platform/internal/applog" "github.com/carlosframework/platform/internal/release" ) // TestErrorsKeysRefuseEmptyApp: the errors family's own builders refuse // the empty app an app-less route is filed under, and a read for it fails // rather than listing apps///errors/. func TestErrorsKeysRefuseEmptyApp(t *testing.T) { if k, err := Prefix("bab", ""); !errors.Is(err, applog.ErrBadKeySegment) || k != "" { t.Fatalf("Prefix = (%q, %v)", k, err) } if k, err := BoxPrefix("bab", "", "leo-climbing"); !errors.Is(err, applog.ErrBadKeySegment) || k != "" { t.Fatalf("BoxPrefix = (%q, %v)", k, err) } if k, err := ChunkKey("bab", "", "leo-climbing", "2026-10-16-06", 1, 2); !errors.Is(err, applog.ErrBadKeySegment) || k != "" { t.Fatalf("ChunkKey = (%q, %v)", k, err) } if _, _, err := ReadWindow(context.Background(), release.NewDirStore(t.TempDir()), "bab", "", Filter{}, 10); !errors.Is(err, applog.ErrBadKeySegment) { t.Fatalf("ReadWindow = %v", err) } if got := must(t)(ChunkKey("bab", "web", "leo-climbing", "2026-10-16-06", 1792015319229, 257)); got != "apps/bab/web/errors/leo-climbing/2026-10-16-06/0001792015319229-257.jsonl.gz" { t.Fatalf("valid ChunkKey moved: %q", got) } }