testbook
Version:
38 lines • 1.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupMocks = exports.runMockStep = void 0;
const runMockStep = (file, exportName, step, context) => {
const { mocks } = context;
const mock = mocks.find((m) => m.name === step.definition.name);
mock.mock.addMock(step.definition.args, step.definition.return);
return Promise.resolve(["success", context]);
};
exports.runMockStep = runMockStep;
const setupFetchMock = () => {
let calls = [];
let mockReturnValues = [];
window.fetch = function (input, init) {
const callingArgs = Array.from(arguments);
calls.push(callingArgs);
const mockReturnValue = mockReturnValues.find(([args]) => JSON.stringify(args) === JSON.stringify(callingArgs));
return Promise.resolve({
json: () => Promise.resolve(mockReturnValue ? mockReturnValue[1] : []),
});
};
return {
addMock: (args, returnValue) => mockReturnValues.push([args, returnValue]),
getCalls: () => calls,
};
};
const MOCKS = [
{
name: "fetch",
setup: setupFetchMock,
},
];
const setupMocks = () => MOCKS.map(({ name, setup }) => ({
name,
mock: setup(),
}));
exports.setupMocks = setupMocks;
//# sourceMappingURL=mocks.js.map