@case-contract-testing/case
Version:
Next-generation contract testing suite
22 lines (21 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupMock = void 0;
const entities_1 = require("../../../../entities");
const context_1 = require("../../../../entities/context");
const results_1 = require("../../../../entities/results");
const mockExecutor_1 = require("./mockExecutor");
const mockExecutors_1 = require("./mockExecutors");
const setupMock = (mockDescriptor, parentMatchContext) => (0, mockExecutor_1.mockExecutor)(mockDescriptor, mockExecutors_1.MockExecutors, parentMatchContext).then(({ config, assertableData }) => ({
config,
assert: () => assertableData().then(({ expected, context, actual }) => Promise.resolve(context.selfVerify(expected, (0, context_1.addLocation)(':selfCheck', context)))
.then((selfVerification) => {
if ((0, results_1.hasErrors)(selfVerification)) {
throw new entities_1.CaseConfigurationError(
// TODO document this extensively.
`The matchers used have been given an example that doesn't pass the matcher: ${selfVerification[0]?.message} (at ${selfVerification[0]?.location})`);
}
})
.then(() => context.descendAndCheck(expected, context, actual))),
}));
exports.setupMock = setupMock;