Files
HiveGrid-Wireframes/03 Quellen und Referenzen/hivegrid-cloud/scripts/verify-route-inventory.test.mjs
T

81 lines
4.4 KiB
JavaScript

import { describe, expect, it } from "vitest";
import { ROUTE_INVENTORY_BUDGETS, classifyRouteModule, classifyRouteSurface, evaluateRouteInventory, scanRouteInventory } from "./verify-route-inventory.mjs";
describe("verify-route-inventory", () => {
it("classifies route files by surface and module profile", () => {
expect(classifyRouteSurface("admin/settings.tsx")).toBe("admin");
expect(classifyRouteSurface("app.$tenant/settings.tsx")).toBe("tenant");
expect(classifyRouteSurface("docs/($lang).tsx")).toBe("public_help_docs_internal");
expect(classifyRouteSurface("customer-portal/auth.tsx")).toBe("portal");
expect(classifyRouteSurface("admin/email-marketing/index.tsx")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/forms.tsx")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/hr/directory._index.tsx")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/bookings.pages.new.tsx")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/calendar._index.tsx")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/calls._index.tsx")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/calls.$id.tsx")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/settings/integrations.calendar.$id.tsx")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/settings.integrations.telephony.tsx")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/telephony.push-subscription.ts")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/chat.search.tsx")).toBe("optional");
expect(classifyRouteSurface("app.$tenant/settings/chat/audit.tsx")).toBe("optional");
expect(classifyRouteSurface("integrations.aircall.oauth.install.tsx")).toBe("optional");
expect(classifyRouteSurface("integrations.aircall.oauth.callback.tsx")).toBe("optional");
expect(classifyRouteSurface("integrations.kwp.setup.tsx")).toBe("optional");
expect(classifyRouteSurface("integrations.kwp.oauth.callback.tsx")).toBe("optional");
expect(classifyRouteSurface("webhooks.telephony.aircall.tsx")).toBe("optional");
// The avatar auth-proxy is a core delivery boundary, not a feature route.
expect(classifyRouteSurface("avatars.$userId.tsx")).toBe("public_help_docs_internal");
expect(classifyRouteSurface("api.embed.forms.$formKey.submit.tsx")).toBe("optional");
expect(classifyRouteSurface("embed.forms.$formKey.tsx")).toBe("optional");
expect(classifyRouteSurface("f.$tenant.$slug.tsx")).toBe("optional");
expect(classifyRouteSurface("b.$tenant.$slug.embed.tsx")).toBe("optional");
expect(classifyRouteSurface("sign.$token.tsx")).toBe("optional");
expect(classifyRouteSurface("e.c.$outboundEmailId.tsx")).toBe("optional");
expect(classifyRouteModule("admin/settings.tsx")).toBe("default-enabled");
expect(classifyRouteModule("docs/($lang).tsx")).toBe("public-system");
expect(classifyRouteModule("customer-portal/auth.tsx")).toBe("portal");
expect(classifyRouteModule("app.$tenant/__workflows/workflow-engine.tsx")).toBe("optional");
});
it("keeps route surface budgets explicit and hard", () => {
expect(ROUTE_INVENTORY_BUDGETS).toEqual({
admin: 159,
tenant: 184,
public_help_docs_internal: 78,
portal: 14,
optional: 136,
total: 571,
});
for (const surface of Object.keys(ROUTE_INVENTORY_BUDGETS)) {
const surfaces = Object.fromEntries(Object.entries(ROUTE_INVENTORY_BUDGETS).map(([key, value]) => [key, key === surface ? value + 1 : value]));
const results = evaluateRouteInventory({
surfaces,
classifications: { "public-system": 1, "default-enabled": 1, portal: 1, optional: 1 },
files: [],
});
expect(results.find((result) => result.surface === surface)?.pass).toBe(false);
}
});
it("matches the reviewed physical route snapshot", async () => {
const inventory = await scanRouteInventory();
expect(inventory.surfaces).toEqual(ROUTE_INVENTORY_BUDGETS);
expect(inventory.classifications).toEqual({
// +1 for BILL-13's product-acquisition return route and +1 for BILL-14's
// registration plan-advice resource.
"public-system": 78,
// +3 with the WF-P8 routes named at ROUTE_INVENTORY_BUDGETS, +1 for P4's
// link-target search resource, +1 for BILL-20's tenant-bound welcome
// and setup route.
"default-enabled": 343,
portal: 14,
optional: 136,
});
});
});