Files
HiveGrid-Wireframes/hivegrid-cloud/apps/web/app/routes/admin/analytics/overview.test.ts
T

57 lines
2.3 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { readRepoFile } from "~/utils/testing/repoPaths";
const routePath = "apps/web/app/routes/admin/analytics/overview.tsx";
const tableRoutePaths = ["apps/web/app/routes/admin/analytics/visitors.tsx", "apps/web/app/routes/admin/analytics/events.tsx", "apps/web/app/routes/admin/analytics/page-views.tsx"];
function readRoute(route = routePath) {
return readRepoFile(route);
}
describe("admin analytics overview route DB boundary", () => {
it("uses the package analytics overview helper", () => {
const source = readRoute();
expect(source).toContain("@toolctrl/db/analytics.server");
expect(source).toContain("getAnalyticsOverview");
expect(source).toContain("withUsers: true");
expect(source).toContain("portalId: undefined");
expect(source).toContain("getTranslations(request)");
expect(source).toContain("locale,");
});
it("validates the period before calling the package helper", () => {
const source = readRoute();
expect(source).toContain("PeriodHelper.getPeriodFromRequest({ request })");
expect(source).toContain("isAnalyticsPeriod(period) ? period : defaultAnalyticsPeriod");
});
it("does not import the legacy AnalyticsService", () => {
const source = readRoute();
expect(source).not.toContain("~/utils/helpers/.server/AnalyticsService");
});
it("keeps migrated table routes behind the package analytics boundary", () => {
for (const tableRoutePath of tableRoutePaths) {
const source = readRoute(tableRoutePath);
expect(source).toContain("@toolctrl/db/analytics.server");
expect(source).not.toContain('from "~/utils/db.server"');
expect(source).not.toContain('from "~/utils/db/users.db.server"');
expect(source).not.toContain('from "~/modules/featureFlags/db/featureFlags.db.server"');
expect(source).not.toMatch(/\bdb\.analytics(?:UniqueVisitor|Event|PageView)\b/);
}
});
it("keeps migrated table route dates on locale-aware formatters", () => {
const source = tableRoutePaths.map((tableRoutePath) => readRoute(tableRoutePath)).join("\n");
expect(source).toContain("useLocaleFormatters");
expect(source).toContain("formatters.dateTime");
expect(source).toContain("formatters.relativeDate");
expect(source).not.toContain("DateUtils");
});
});