32 lines
1.6 KiB
TypeScript
32 lines
1.6 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
import { readFileSync } from "node:fs";
|
|
import { fileURLToPath } from "node:url";
|
|
import path from "node:path";
|
|
|
|
const source = readFileSync(path.join(path.dirname(fileURLToPath(import.meta.url)), "appConfiguration.db.server.ts"), "utf8");
|
|
|
|
describe("appConfiguration web config adoption", () => {
|
|
test("uses loadRequiredWebConfig instead of direct web env reads for public config fields", () => {
|
|
expect(source).toContain('import { loadRequiredWebConfig } from "@toolctrl/config"');
|
|
expect(source).toContain("const webConfig = loadRequiredWebConfig()");
|
|
expect(source).toContain("instanceUrl: webConfig.captcha.instanceUrl ?? \"\"");
|
|
expect(source).toContain("const authProviders = getPublicAuthProviders({ request, webConfig })");
|
|
expect(source).toContain("enabled: authProviders.magicLink.enabled");
|
|
expect(source).not.toContain("authProviders.github");
|
|
expect(source).not.toContain('new URL("https://github.com/login/oauth/authorize")');
|
|
expect(source).not.toContain("loadWebConfig().config");
|
|
expect(source).not.toContain("process.env.AUTH_RECAPTCHA_SITE_KEY");
|
|
expect(source).not.toContain("process?.env.GITHUB_OAUTH_CLIENT_ID");
|
|
});
|
|
|
|
test("does not keep removed Forms or Surveys as feature flags", () => {
|
|
expect(source).not.toContain("surveys:");
|
|
});
|
|
|
|
test("defaults optional analytics tracking to disabled", () => {
|
|
expect(source).toContain("analytics: {\n enabled: false,");
|
|
expect(source).toContain("simpleAnalytics: false");
|
|
expect(source).toContain("ipLookup: false");
|
|
});
|
|
});
|