UNPKG

@case-contract-testing/case

Version:

Next-generation contract testing suite

33 lines (32 loc) 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.verifyContract = exports.defineContract = void 0; const ContractDefiner_1 = require("../ContractDefiner"); const ContractVerifier_1 = require("../ContractVerifier"); const TIMEOUT = 30000; const runJestTest = (testName, verify) => { // eslint-disable-next-line jest/expect-expect it(`${testName}`, () => verify(), TIMEOUT); }; const defineContract = ({ config, ...contractConfig }, callback) => describe(`Case contract definition`, () => { const { stateHandlers, triggers, ...contextConfig } = config || {}; const contract = new ContractDefiner_1.ContractDefiner(contractConfig, { testRunId: process.env['JEST_WORKER_ID'] || 'JEST_WORKER_ID_WAS_UNDEFINED', ...contextConfig, }, { stateHandlers, triggers }); afterAll(() => contract.endRecord(), TIMEOUT); describe(`between ${contractConfig.consumerName} and ${contractConfig.providerName}`, () => { jest.setTimeout(30000); callback(contract); }); }); exports.defineContract = defineContract; const verifyContract = (config, callback) => { if (!config.providerName) { throw new Error('Must specify a providerName to verify'); } describe(`Provider verification for ${config.providerName}`, () => { callback(new ContractVerifier_1.ContractVerifier(config, runJestTest)); }); }; exports.verifyContract = verifyContract;