@case-contract-testing/case
Version:
Next-generation contract testing suite
23 lines (22 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupExample = void 0;
const contract_1 = require("../../../entities/contract");
const setupMock_1 = require("./setupMock");
const stateHandlers_1 = require("./stateHandlers");
const setupWithTeardown = (example, stateSetups) => (context) => {
context.logger.maintainerDebug(`Calling setupUnhandledAssert`);
return (0, setupMock_1.setupMock)(example.mock, context).then((assertable) => ({
...assertable,
assert: () => assertable
.assert()
.finally(() => (0, stateHandlers_1.executeStateTeardown)(example, stateSetups, context)),
}));
};
const setupExample = (example, stateSetups, parentContext) => {
const exampleName = (0, contract_1.exampleToNames)(example, parentContext['case:currentRun:context:testName']);
parentContext.logger.debug(`Beginning setup for example "${exampleName.mockName}"`);
parentContext.logger.maintainerDebug('Context is', JSON.stringify(parentContext, null, 2));
return (0, stateHandlers_1.executeStateSetup)(example, stateSetups, parentContext).then(setupWithTeardown(example, stateSetups));
};
exports.setupExample = setupExample;