83 lines
2.6 KiB
TypeScript
83 lines
2.6 KiB
TypeScript
import { strict as assert } from "node:assert";
|
|
import { test } from "node:test";
|
|
import {
|
|
BACKEND_API_BASE_URLS,
|
|
getBackendApiBaseUrl,
|
|
getDiagramTodayUrl,
|
|
getOfficialPositionResolverConfig,
|
|
getOfficialPositionSource,
|
|
normalizeJrDataSystemEnvironment,
|
|
resolveJrDataSystemEnvironment,
|
|
rewriteBackendApiUrl,
|
|
rewriteJrDataSystemUrl,
|
|
} from "../lib/jrDataSystemEnvironment";
|
|
|
|
test("legacy environment keys normalize without inventing new environments", () => {
|
|
assert.equal(normalizeJrDataSystemEnvironment("production"), "production_release");
|
|
assert.equal(normalizeJrDataSystemEnvironment("chatgpt"), "production_beta");
|
|
assert.equal(normalizeJrDataSystemEnvironment("claude"), "production_beta");
|
|
assert.equal(normalizeJrDataSystemEnvironment("unknown"), "production_release");
|
|
});
|
|
|
|
test("track and UI choices resolve to the three supported environments", () => {
|
|
assert.equal(
|
|
resolveJrDataSystemEnvironment("production", "release"),
|
|
"production_release",
|
|
);
|
|
assert.equal(
|
|
resolveJrDataSystemEnvironment("production", "beta"),
|
|
"production_beta",
|
|
);
|
|
assert.equal(
|
|
resolveJrDataSystemEnvironment("experimental", "beta"),
|
|
"experimental",
|
|
);
|
|
});
|
|
|
|
test("experimental environment changes both backend and diagram endpoints", () => {
|
|
assert.equal(
|
|
getBackendApiBaseUrl("experimental"),
|
|
BACKEND_API_BASE_URLS.experimental,
|
|
);
|
|
assert.match(getDiagramTodayUrl("experimental"), /diagram-today-beta\.json$/);
|
|
assert.match(
|
|
getDiagramTodayUrl("production_release"),
|
|
/diagram-today\.json$/,
|
|
);
|
|
});
|
|
|
|
|
|
test("only experimental selects the beta OfficialPosition source", () => {
|
|
assert.equal(getOfficialPositionSource("experimental"), "backend");
|
|
assert.equal(getOfficialPositionSource("production_release"), "legacy-n8n");
|
|
assert.equal(getOfficialPositionSource("production_beta"), "legacy-n8n");
|
|
assert.equal(
|
|
getOfficialPositionResolverConfig("experimental").backendApiBaseUrl,
|
|
BACKEND_API_BASE_URLS.experimental,
|
|
);
|
|
assert.equal(
|
|
getOfficialPositionResolverConfig("production_release").officialPositionEditEnabled,
|
|
false,
|
|
);
|
|
});
|
|
test("URL rewriting only changes known JR data-system origins", () => {
|
|
assert.equal(
|
|
rewriteBackendApiUrl(
|
|
`${BACKEND_API_BASE_URLS.production}/train-data`,
|
|
"experimental",
|
|
),
|
|
`${BACKEND_API_BASE_URLS.experimental}/train-data`,
|
|
);
|
|
assert.equal(
|
|
rewriteJrDataSystemUrl(
|
|
"https://shikoku-railinfo.haruk.in/path?q=1",
|
|
"production_beta",
|
|
),
|
|
"https://nightly.shikoku-railinfo.haruk.in/path?q=1",
|
|
);
|
|
assert.equal(
|
|
rewriteJrDataSystemUrl("https://example.com/path", "experimental"),
|
|
"https://example.com/path",
|
|
);
|
|
});
|