35 lines
1.5 KiB
TypeScript
35 lines
1.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { readRepoFile } from "~/utils/testing/repoPaths";
|
|
|
|
const runtimeFiles = [
|
|
"apps/web/app/modules/ipAddress/services/IpAddressService.server.ts",
|
|
"apps/web/app/modules/ipAddress/services/geoip.server.ts",
|
|
"apps/web/app/modules/users/services/AuthService.ts",
|
|
"apps/web/app/modules/workflowEngine/services/blocks/WorkflowBlockService.ts",
|
|
"apps/web/app/utils/services/.server/demoDataUi.server.ts",
|
|
];
|
|
|
|
// AD-22/EXT-12: IpAddressService delegiert die Env-Config an geoip.server.ts; damit ist
|
|
// geoip.server.ts die config-backed Boundary-Datei (loadWebConfig → @hivegrid/config).
|
|
// AK-P20: settings.tsx delegiert das Demo-Daten-Env-Gate an demoDataUi.server.ts; damit
|
|
// wandert die config-backed Boundary vom Route-Loader in den Service.
|
|
const configBackedRuntimeFiles = [
|
|
"apps/web/app/modules/ipAddress/services/geoip.server.ts",
|
|
"apps/web/app/modules/users/services/AuthService.ts",
|
|
"apps/web/app/utils/services/.server/demoDataUi.server.ts",
|
|
];
|
|
|
|
describe("runtime NODE_ENV boundary", () => {
|
|
it.each(runtimeFiles)("does not read process.env.NODE_ENV directly in %s", (relativePath) => {
|
|
const source = readRepoFile(relativePath);
|
|
|
|
expect(source).not.toMatch(/process\.env\.NODE_ENV\b/);
|
|
});
|
|
|
|
it.each(configBackedRuntimeFiles)("uses @hivegrid/config for runtime environment config in %s", (relativePath) => {
|
|
const source = readRepoFile(relativePath);
|
|
|
|
expect(source).toContain("@hivegrid/config");
|
|
});
|
|
});
|