test(gateway): mock split config modules

This commit is contained in:
Peter Steinberger
2026-04-27 20:51:09 +01:00
parent 930b443c9e
commit 161b722303
10 changed files with 47 additions and 1 deletions

View File

@@ -15,6 +15,16 @@ vi.mock("../config/config.js", () => ({
})),
}));
vi.mock("../config/io.js", () => ({
getRuntimeConfig: vi.fn(() => ({
gateway: {
controlUi: {
allowedOrigins: ["https://control.example.com"],
},
},
})),
}));
vi.mock("./http-common.js", () => ({
sendGatewayAuthFailure: vi.fn(),
sendJson: vi.fn(),

View File

@@ -9,6 +9,10 @@ vi.mock("../config/config.js", () => ({
getRuntimeConfig: () => loadConfigMock(),
}));
vi.mock("../config/io.js", () => ({
getRuntimeConfig: () => loadConfigMock(),
}));
vi.mock("./server-model-catalog.js", () => ({
loadGatewayModelCatalog: () => loadGatewayModelCatalogMock(),
}));

View File

@@ -12,6 +12,10 @@ vi.mock("../config/io.js", () => ({
getRuntimeConfig: vi.fn(() => ({})),
}));
vi.mock("../config/io.js", () => ({
getRuntimeConfig: vi.fn(() => ({})),
}));
vi.mock("../infra/heartbeat-visibility.js", () => ({
resolveHeartbeatVisibility: vi.fn(() => ({
showOk: false,

View File

@@ -11,6 +11,10 @@ vi.mock("../config/io.js", () => ({
getRuntimeConfig: () => hoisted.loadConfigMock(),
}));
vi.mock("../config/io.js", () => ({
getRuntimeConfig: () => hoisted.loadConfigMock(),
}));
vi.mock("./session-utils.js", async () => {
const actual = await vi.importActual<typeof import("./session-utils.js")>("./session-utils.js");
return {

View File

@@ -54,12 +54,12 @@ const pluginMetadataSnapshot = vi.hoisted(
},
}),
);
vi.mock("../config/io.js", () => ({
readConfigFileSnapshot: vi.fn(),
readConfigFileSnapshotWithPluginMetadata: vi.fn(),
recoverConfigFromLastKnownGood: vi.fn(),
recoverConfigFromJsonRootSuffix: vi.fn(),
writeConfigFile: vi.fn(),
}));
vi.mock("../config/paths.js", () => ({

View File

@@ -45,6 +45,10 @@ vi.mock("../../../config/config.js", () => ({
loadConfig: loadConfigMock,
}));
vi.mock("../../../config/io.js", () => ({
getRuntimeConfig: loadConfigMock,
}));
vi.mock("../../../infra/system-presence.js", () => ({
upsertPresence: upsertPresenceMock,
}));

View File

@@ -18,6 +18,10 @@ vi.mock("../config/config.js", () => ({
getRuntimeConfig: () => cfg,
}));
vi.mock("../config/io.js", () => ({
getRuntimeConfig: () => cfg,
}));
vi.mock("./auth.js", () => ({
authorizeHttpGatewayConnect: authMock,
isLocalDirectRequest: isLocalDirectRequestMock,

View File

@@ -20,6 +20,14 @@ vi.mock("../config/config.js", async () => {
};
});
vi.mock("../config/mutate.js", async () => {
const actual = await vi.importActual<typeof import("../config/mutate.js")>("../config/mutate.js");
return {
...actual,
replaceConfigFile: mocks.replaceConfigFile,
};
});
describe("ensureGatewayStartupAuth", () => {
async function expectEphemeralGeneratedTokenWhenOverridden(cfg: OpenClawConfig) {
const result = await ensureGatewayStartupAuth({

View File

@@ -19,6 +19,10 @@ vi.mock("../config/config.js", () => ({
getRuntimeConfig: () => cfg,
}));
vi.mock("../config/io.js", () => ({
getRuntimeConfig: () => cfg,
}));
vi.mock("../config/sessions.js", () => ({
resolveMainSessionKey: () => "agent:main:main",
}));

View File

@@ -25,6 +25,10 @@ vi.mock("../config/config.js", () => ({
getRuntimeConfig: () => cfg,
}));
vi.mock("../config/io.js", () => ({
getRuntimeConfig: () => cfg,
}));
vi.mock("../config/sessions.js", () => ({
resolveMainSessionKey: (params?: {
session?: { scope?: string; mainKey?: string };