mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-12 01:31:08 +00:00
test: harden provider mock isolation
This commit is contained in:
@@ -5,6 +5,8 @@ vi.unmock("../secrets/provider-env-vars.js");
|
||||
let collectProviderApiKeys: typeof import("./live-auth-keys.js").collectProviderApiKeys;
|
||||
|
||||
async function loadModulesForTest(): Promise<void> {
|
||||
vi.resetModules();
|
||||
vi.doUnmock("../secrets/provider-env-vars.js");
|
||||
({ collectProviderApiKeys } = await import("./live-auth-keys.js"));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { withEnvAsync } from "../test-utils/env.js";
|
||||
import {
|
||||
installModelsConfigTestHooks,
|
||||
@@ -8,7 +8,6 @@ import {
|
||||
withCopilotGithubToken,
|
||||
withModelsTempHome as withTempHome,
|
||||
} from "./models-config.e2e-harness.js";
|
||||
import { ensureOpenClawModelsJson } from "./models-config.js";
|
||||
|
||||
vi.unmock("./models-config.js");
|
||||
vi.unmock("./agent-paths.js");
|
||||
@@ -19,6 +18,21 @@ vi.unmock("../secrets/provider-env-vars.js");
|
||||
|
||||
installModelsConfigTestHooks({ restoreFetch: true });
|
||||
|
||||
let ensureOpenClawModelsJson: typeof import("./models-config.js").ensureOpenClawModelsJson;
|
||||
|
||||
async function loadModelsConfigForTest(): Promise<void> {
|
||||
vi.resetModules();
|
||||
vi.doUnmock("./models-config.js");
|
||||
vi.doUnmock("./agent-paths.js");
|
||||
vi.doUnmock("../plugins/manifest-registry.js");
|
||||
vi.doUnmock("../plugins/provider-runtime.js");
|
||||
vi.doUnmock("../plugins/provider-runtime.runtime.js");
|
||||
vi.doUnmock("../secrets/provider-env-vars.js");
|
||||
({ ensureOpenClawModelsJson } = await import("./models-config.js"));
|
||||
}
|
||||
|
||||
beforeEach(loadModelsConfigForTest);
|
||||
|
||||
describe("models-config", () => {
|
||||
it("auto-injects github-copilot provider when token is present", async () => {
|
||||
await withTempHome(async (home) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { withEnvAsync } from "../test-utils/env.js";
|
||||
import { DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token.js";
|
||||
import {
|
||||
@@ -9,7 +9,6 @@ import {
|
||||
withUnsetCopilotTokenEnv,
|
||||
withModelsTempHome as withTempHome,
|
||||
} from "./models-config.e2e-harness.js";
|
||||
import { ensureOpenClawModelsJson } from "./models-config.js";
|
||||
|
||||
vi.unmock("./models-config.js");
|
||||
vi.unmock("./agent-paths.js");
|
||||
@@ -20,6 +19,21 @@ vi.unmock("../secrets/provider-env-vars.js");
|
||||
|
||||
installModelsConfigTestHooks({ restoreFetch: true });
|
||||
|
||||
let ensureOpenClawModelsJson: typeof import("./models-config.js").ensureOpenClawModelsJson;
|
||||
|
||||
async function loadModelsConfigForTest(): Promise<void> {
|
||||
vi.resetModules();
|
||||
vi.doUnmock("./models-config.js");
|
||||
vi.doUnmock("./agent-paths.js");
|
||||
vi.doUnmock("../plugins/manifest-registry.js");
|
||||
vi.doUnmock("../plugins/provider-runtime.js");
|
||||
vi.doUnmock("../plugins/provider-runtime.runtime.js");
|
||||
vi.doUnmock("../secrets/provider-env-vars.js");
|
||||
({ ensureOpenClawModelsJson } = await import("./models-config.js"));
|
||||
}
|
||||
|
||||
beforeEach(loadModelsConfigForTest);
|
||||
|
||||
async function readCopilotBaseUrl(agentDir: string) {
|
||||
const raw = await fs.readFile(path.join(agentDir, "models.json"), "utf8");
|
||||
const parsed = JSON.parse(raw) as {
|
||||
|
||||
@@ -8,6 +8,7 @@ vi.unmock("../secrets/provider-env-vars.js");
|
||||
async function loadSecretsModule() {
|
||||
vi.doUnmock("../plugins/manifest-registry.js");
|
||||
vi.doUnmock("../plugins/provider-runtime.js");
|
||||
vi.doUnmock("../plugins/provider-runtime.runtime.js");
|
||||
vi.doUnmock("../secrets/provider-env-vars.js");
|
||||
vi.resetModules();
|
||||
const [{ resetProviderRuntimeHookCacheForTest }, { resetPluginLoaderTestStateForTest }] =
|
||||
@@ -23,6 +24,7 @@ async function loadSecretsModule() {
|
||||
beforeEach(async () => {
|
||||
vi.doUnmock("../plugins/manifest-registry.js");
|
||||
vi.doUnmock("../plugins/provider-runtime.js");
|
||||
vi.doUnmock("../plugins/provider-runtime.runtime.js");
|
||||
vi.doUnmock("../secrets/provider-env-vars.js");
|
||||
vi.resetModules();
|
||||
const [{ resetProviderRuntimeHookCacheForTest }, { resetPluginLoaderTestStateForTest }] =
|
||||
|
||||
@@ -25,6 +25,7 @@ let createProviderAuthResolver: typeof import("./models-config.providers.secrets
|
||||
async function loadSecretsModule() {
|
||||
vi.doUnmock("../plugins/manifest-registry.js");
|
||||
vi.doUnmock("../plugins/provider-runtime.js");
|
||||
vi.doUnmock("../plugins/provider-runtime.runtime.js");
|
||||
vi.doUnmock("../secrets/provider-env-vars.js");
|
||||
vi.resetModules();
|
||||
await resetProviderRuntimeState();
|
||||
|
||||
Reference in New Issue
Block a user