mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-06 14:51:08 +00:00
55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { mockNodeBuiltinModule } from "./node-builtin-mocks.js";
|
|
|
|
describe("mockNodeBuiltinModule", () => {
|
|
it("merges partial overrides into the original module", async () => {
|
|
const actual = { readFileSync: () => "actual", watch: () => "watch" };
|
|
const readFileSync = () => "mock";
|
|
|
|
const mocked = await mockNodeBuiltinModule(async () => actual, {
|
|
readFileSync,
|
|
});
|
|
|
|
expect(mocked.readFileSync).toBe(readFileSync);
|
|
expect(mocked.watch).toBe(actual.watch);
|
|
expect("default" in mocked).toBe(false);
|
|
});
|
|
|
|
it("mirrors overrides into the default export when requested", async () => {
|
|
const homedir = () => "/tmp/home";
|
|
|
|
const mocked = await mockNodeBuiltinModule(
|
|
async () => ({ tmpdir: () => "/tmp" }),
|
|
{ homedir },
|
|
{ mirrorToDefault: true },
|
|
);
|
|
|
|
expect(mocked.default).toMatchObject({
|
|
homedir,
|
|
tmpdir: expect.any(Function),
|
|
});
|
|
});
|
|
|
|
it("preserves existing default exports while overriding members", async () => {
|
|
const actual = {
|
|
readFileSync: () => "actual",
|
|
default: {
|
|
readFileSync: () => "actual",
|
|
statSync: () => "stat",
|
|
},
|
|
};
|
|
const readFileSync = () => "mock";
|
|
|
|
const mocked = await mockNodeBuiltinModule(
|
|
async () => actual,
|
|
{ readFileSync },
|
|
{ mirrorToDefault: true },
|
|
);
|
|
|
|
expect(mocked.default).toMatchObject({
|
|
readFileSync,
|
|
statSync: expect.any(Function),
|
|
});
|
|
});
|
|
});
|