spanwright
Version:
CLI tool to generate Cloud Spanner E2E testing framework projects with Go database tools and Playwright browser automation
88 lines • 3.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupMockEnvironment = exports.resetAllMocks = exports.createMockFile = exports.createMockReadlineInterface = exports.mockPath = exports.mockFs = exports.mockReadline = exports.mockProcess = exports.mockConsole = void 0;
const vitest_1 = require("vitest");
exports.mockConsole = {
log: vitest_1.vi.fn(),
error: vitest_1.vi.fn(),
warn: vitest_1.vi.fn(),
info: vitest_1.vi.fn(),
};
exports.mockProcess = {
exit: vitest_1.vi.fn(),
env: {},
argv: ['node', 'spanwright'],
cwd: vitest_1.vi.fn().mockReturnValue('/test/cwd'),
pid: 12345,
};
exports.mockReadline = {
createInterface: vitest_1.vi.fn(),
question: vitest_1.vi.fn(),
close: vitest_1.vi.fn(),
};
exports.mockFs = {
existsSync: vitest_1.vi.fn(),
mkdirSync: vitest_1.vi.fn(),
readFileSync: vitest_1.vi.fn(),
writeFileSync: vitest_1.vi.fn(),
unlinkSync: vitest_1.vi.fn(),
renameSync: vitest_1.vi.fn(),
readdirSync: vitest_1.vi.fn(),
statSync: vitest_1.vi.fn(),
copyFileSync: vitest_1.vi.fn(),
rmSync: vitest_1.vi.fn(),
};
exports.mockPath = {
join: vitest_1.vi.fn((...args) => args.join('/')),
resolve: vitest_1.vi.fn((...args) => '/' + args.join('/')),
dirname: vitest_1.vi.fn(path => path.split('/').slice(0, -1).join('/')),
basename: vitest_1.vi.fn(path => path.split('/').pop()),
extname: vitest_1.vi.fn(path => {
const parts = path.split('.');
return parts.length > 1 ? '.' + parts.pop() : '';
}),
isAbsolute: vitest_1.vi.fn(path => path.startsWith('/')),
};
const createMockReadlineInterface = () => ({
question: vitest_1.vi.fn(),
close: vitest_1.vi.fn(),
});
exports.createMockReadlineInterface = createMockReadlineInterface;
const createMockFile = (content) => ({
toString: () => content,
length: content.length,
});
exports.createMockFile = createMockFile;
const resetAllMocks = () => {
vitest_1.vi.clearAllMocks();
Object.values(exports.mockConsole).forEach(mock => {
if (typeof mock === 'function' && 'mockReset' in mock) {
mock.mockReset();
}
});
Object.values(exports.mockProcess).forEach(mock => {
if (typeof mock === 'function' && 'mockReset' in mock) {
mock.mockReset();
}
});
Object.values(exports.mockFs).forEach(mock => {
if (typeof mock === 'function' && 'mockReset' in mock) {
mock.mockReset();
}
});
Object.values(exports.mockPath).forEach(mock => {
if (typeof mock === 'function' && 'mockReset' in mock) {
mock.mockReset();
}
});
};
exports.resetAllMocks = resetAllMocks;
const setupMockEnvironment = () => {
vitest_1.vi.mock('console', () => exports.mockConsole);
vitest_1.vi.mock('process', () => exports.mockProcess);
vitest_1.vi.mock('readline', () => exports.mockReadline);
vitest_1.vi.mock('fs', () => exports.mockFs);
vitest_1.vi.mock('path', () => exports.mockPath);
};
exports.setupMockEnvironment = setupMockEnvironment;
//# sourceMappingURL=test-utils.js.map