@case-contract-testing/case
Version:
Next-generation contract testing suite
33 lines (32 loc) • 1.45 kB
JavaScript
;
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;