mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-16 19:51:11 +00:00
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
|
|
const { existsSyncMock, readFileSyncMock } = vi.hoisted(() => ({
|
|
existsSyncMock: vi.fn(),
|
|
readFileSyncMock: vi.fn(),
|
|
}));
|
|
|
|
vi.mock("node:fs", async () => {
|
|
const actual = await vi.importActual<typeof import("node:fs")>("node:fs");
|
|
existsSyncMock.mockImplementation((pathname) => actual.existsSync(pathname));
|
|
readFileSyncMock.mockImplementation((pathname, options) =>
|
|
String(pathname) === "/tmp/vertex-adc.json"
|
|
? '{"project_id":"vertex-project"}'
|
|
: actual.readFileSync(pathname, options as never),
|
|
);
|
|
return {
|
|
...actual,
|
|
existsSync: existsSyncMock,
|
|
readFileSync: readFileSyncMock,
|
|
default: {
|
|
...actual,
|
|
existsSync: existsSyncMock,
|
|
readFileSync: readFileSyncMock,
|
|
},
|
|
};
|
|
});
|
|
|
|
import { hasAnthropicVertexAvailableAuth, resolveAnthropicVertexProjectId } from "./region.js";
|
|
|
|
describe("anthropic-vertex ADC reads", () => {
|
|
afterEach(() => {
|
|
existsSyncMock.mockClear();
|
|
readFileSyncMock.mockClear();
|
|
});
|
|
|
|
it("reads explicit ADC credentials without an existsSync preflight", () => {
|
|
const env = {
|
|
GOOGLE_APPLICATION_CREDENTIALS: "/tmp/vertex-adc.json",
|
|
} as NodeJS.ProcessEnv;
|
|
|
|
existsSyncMock.mockClear();
|
|
readFileSyncMock.mockClear();
|
|
|
|
expect(resolveAnthropicVertexProjectId(env)).toBe("vertex-project");
|
|
expect(hasAnthropicVertexAvailableAuth(env)).toBe(true);
|
|
expect(existsSyncMock).not.toHaveBeenCalled();
|
|
expect(readFileSyncMock).toHaveBeenCalledWith("/tmp/vertex-adc.json", "utf8");
|
|
});
|
|
});
|