UNPKG

@case-contract-testing/case

Version:

Next-generation contract testing suite

61 lines (60 loc) 2.72 kB
"use strict"; 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;