@case-contract-testing/case
Version:
Next-generation contract testing suite
61 lines (60 loc) • 2.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ContractDefinerConnector = void 0;
const core_1 = require("../../core");
const entities_1 = require("../../entities");
const dependencies_1 = require("../dependencies");
class ContractDefinerConnector {
contract;
invoker;
config;
constructor(description, config, invoker, dependencies = dependencies_1.writerDependencies) {
this.contract = new core_1.WritingCaseContract(description, dependencies, config);
this.config = config;
this.invoker = invoker;
}
runExample({ states = [], definition, trigger, triggers, testResponse, stateHandlers, }, runConfig = {}) {
if (trigger === undefined && testResponse !== undefined) {
throw new entities_1.CaseConfigurationError('The testResponse function was supplied, but this is not valid without also supplying `trigger`');
}
if (trigger !== undefined && testResponse === undefined) {
throw new entities_1.CaseConfigurationError('There was a trigger supplied, but without a corresponding `testResponse` function');
}
return this.contract.executeTest({
states,
mockDescription: definition,
trigger,
testResponse,
triggers: triggers ||
this.invoker.triggers ||
{},
stateHandlers: stateHandlers || this.invoker.stateHandlers || {},
}, runConfig);
}
runRejectingExample({ states = [], definition, trigger, triggers, testErrorResponse, stateHandlers, }, runConfig = {}) {
if (trigger === undefined && testErrorResponse !== undefined) {
throw new entities_1.CaseConfigurationError('The testErrorResponse function was supplied, but this is not valid without also supplying `trigger`');
}
if (trigger !== undefined && testErrorResponse === undefined) {
throw new entities_1.CaseConfigurationError('There was a trigger supplied, but without a corresponding `testErrorResponse` function');
}
return this.contract.executeTest({
states,
mockDescription: definition,
trigger,
testResponse: undefined,
testErrorResponse,
triggers: triggers ||
this.invoker.triggers ||
{},
stateHandlers: stateHandlers || this.invoker.stateHandlers || {},
}, runConfig);
}
endRecord() {
return this.contract.endRecord();
}
stripMatchers(matcherOrData) {
return this.contract.stripMatchers(matcherOrData);
}
}
exports.ContractDefinerConnector = ContractDefinerConnector;