env.beforeEach(() => { jasmine.addCustomEqualityTester(iterableEquality); jasmine.addMatchers({ toMatchSnapshot: snapshot.matcher( testPath, config, jasmine, snapshotState, ), }); jasmine.addMatchers({ toBeCalled: () => ({ compare: (actual, expected) => { if (expected) { throw Error( 'toBeCalled() does not accept parameters, use ' + 'toBeCalledWith instead.', ); } const isSpy = isSpyLike(actual); if (!isSpy && !isMockLike(actual)) { throw Error( 'toBeCalled() should be used on a mock function or ' + 'a jasmine spy.', ); } const calls = isSpy ? actual.calls.all().map(x => x.args) : actual.mock.calls; const pass = calls.length !== 0; const message = ( pass ? 'Expected not to be called' : 'Expected to be called at least once' ); return { pass, message, }; }, }), lastCalledWith: util => ({ compare(actual) { const isSpy = isSpyLike(actual); if (!isSpy && !isMockLike(actual)) { throw Error( 'lastCalledWith() should be used on a mock function or ' + 'a jasmine spy.', ); } const calls = isSpy ? actual.calls.all().map(x => x.args) : actual.mock.calls; const expected = Array.prototype.slice.call(arguments, 1); const pass = util.equals(calls[calls.length - 1], expected); if (!pass) { return { pass, // $FlowFixMe - get/set properties not yet supported get message() { return ( `Wasn't last called with the expected values.\n` + 'Expected call:\n' + reporter.getFormatter().prettyPrint(expected) + getActualCalls(reporter, calls, LAST_CALL_PRINT_LIMIT) ); }, }; } return { pass, // $FlowFixMe - get/set properties not yet supported get message() { return ( `Shouldn't have been last called with\n` + reporter.getFormatter().prettyPrint(expected) ); }, }; }, }), toBeCalledWith: util => ({ compare(actual) { const isSpy = isSpyLike(actual); if (!isMockLike(actual) && !isSpy) { throw Error( 'toBeCalledWith() should be used on a mock function or ' + 'a jasmine spy.', ); } const calls = isSpy ? actual.calls.all().map(x => x.args) : actual.mock.calls; const expected = Array.prototype.slice.call(arguments, 1); const pass = calls.some(call => util.equals(call, expected)); if (!pass) { return { pass, // $FlowFixMe - get/set properties not yet supported get message() { return ( 'Was not called with the expected values.\n' + 'Expected call:\n' + reporter.getFormatter().prettyPrint(expected) + getActualCalls(reporter, calls, CALL_PRINT_LIMIT) ); }, }; } return { pass, // $FlowFixMe - get/set properties not yet supported get message() { return ( `Shouldn't have been called with\n` + reporter.getFormatter().prettyPrint(expected) ); }, }; }, }), }); if (!config.persistModuleRegistryBetweenSpecs) { runtime.resetModuleRegistry(); } });
env.beforeEach(() => { jasmine.addMatchers({ toMatchSnapshot: snapshot.matcher( testPath, config, snapshotState) }); jasmine.addMatchers({ lastCalledWith: util => ({ compare(actual) { const isSpy = isSpyLike(actual); if (!isSpy && !isMockLike(actual)) { throw Error( 'lastCalledWith() should be used on a mock function or ' + 'a jasmine spy.'); } const calls = isSpy ? actual.calls.all().map(x => x.args) : actual.mock.calls; const expected = Array.prototype.slice.call(arguments, 1); const pass = util.equals(calls[calls.length - 1], expected); if (!pass) { return { pass, // $FlowFixMe - get/set properties not yet supported get message() { return ( `Wasn't last called with the expected values.\n` + 'Expected call:\n' + reporter.getFormatter().prettyPrint(expected) + getActualCalls(reporter, calls, LAST_CALL_PRINT_LIMIT)); } }; } return { pass, // $FlowFixMe - get/set properties not yet supported get message() { return ( `Shouldn't have been last called with\n` + reporter.getFormatter().prettyPrint(expected)); } }; } }), toBeCalledWith: util => ({ compare(actual) { const isSpy = isSpyLike(actual); if (!isMockLike(actual) && !isSpy) { throw Error( 'toBeCalledWith() should be used on a mock function or ' + 'a jasmine spy.'); } const calls = isSpy ? actual.calls.all().map(x => x.args) : actual.mock.calls; const expected = Array.prototype.slice.call(arguments, 1); const pass = calls.some(call => util.equals(call, expected)); if (!pass) { return { pass, // $FlowFixMe - get/set properties not yet supported get message() { return ( 'Was not called with the expected values.\n' + 'Expected call:\n' + reporter.getFormatter().prettyPrint(expected) + getActualCalls(reporter, calls, CALL_PRINT_LIMIT)); } }; } return { pass, // $FlowFixMe - get/set properties not yet supported get message() { return ( `Shouldn't have been called with\n` + reporter.getFormatter().prettyPrint(expected)); } }; } }) }); if (config.resetModules) { runtime.resetModules(); } });