Files
diegosouzapw--omniroute/tests/unit/outbound-url-guard-feature-flag.test.ts
2026-07-13 13:39:12 +08:00

81 lines
2.7 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
// #2575 — the DB feature flag override must take precedence over the
// process environment, otherwise toggling "Allow Private Provider URLs" in
// the Electron dashboard has no effect (the server was spawned with the env
// value at boot and the subsequent toggle only lands in the DB).
const KEY = "OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS";
async function withEnv<T>(value: string | undefined, fn: () => Promise<T> | T): Promise<T> {
const prev = process.env[KEY];
if (value === undefined) delete process.env[KEY];
else process.env[KEY] = value;
try {
return await fn();
} finally {
if (prev === undefined) delete process.env[KEY];
else process.env[KEY] = prev;
}
}
async function withDbOverride<T>(value: string | undefined, fn: () => Promise<T> | T): Promise<T> {
const { setFeatureFlagOverride, removeFeatureFlagOverride } =
await import("../../src/lib/db/featureFlags.ts");
if (value === undefined) {
removeFeatureFlagOverride(KEY);
} else {
setFeatureFlagOverride(KEY, value);
}
try {
return await fn();
} finally {
removeFeatureFlagOverride(KEY);
}
}
test("arePrivateProviderUrlsAllowed honors DB override = 'true' even when env is 'false'", async () => {
await withEnv("false", async () => {
await withDbOverride("true", async () => {
const { arePrivateProviderUrlsAllowed } =
await import("../../src/shared/network/outboundUrlGuard.ts");
assert.equal(
arePrivateProviderUrlsAllowed(),
true,
"DB toggle must override stale env value"
);
});
});
});
test("arePrivateProviderUrlsAllowed returns false when DB override = 'false' and no env truthy", async () => {
await withEnv(undefined, async () => {
await withDbOverride("false", async () => {
const { arePrivateProviderUrlsAllowed } =
await import("../../src/shared/network/outboundUrlGuard.ts");
assert.equal(arePrivateProviderUrlsAllowed(), false);
});
});
});
test("arePrivateProviderUrlsAllowed honors env = 'true' when DB has no override", async () => {
await withEnv("true", async () => {
await withDbOverride(undefined, async () => {
const { arePrivateProviderUrlsAllowed } =
await import("../../src/shared/network/outboundUrlGuard.ts");
assert.equal(arePrivateProviderUrlsAllowed(), true);
});
});
});
test("arePrivateProviderUrlsAllowed default (no env, no DB) returns false", async () => {
await withEnv(undefined, async () => {
await withDbOverride(undefined, async () => {
const { arePrivateProviderUrlsAllowed } =
await import("../../src/shared/network/outboundUrlGuard.ts");
assert.equal(arePrivateProviderUrlsAllowed(), false);
});
});
});