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 ),
});
});
});
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland