UNPKG

@contract-case/case-core

Version:

Core functionality for the ContractCase contract testing suite

51 lines 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeFailedExample = exports.makeSuccessExample = exports.exampleToNames = void 0; const case_plugin_base_1 = require("@contract-case/case-plugin-base"); const getRequestName = (index, mock) => { if (!('request' in mock)) { return 'No request defined'; } return '_case:matcher:uniqueName' in mock.request && typeof mock.request['_case:matcher:uniqueName'] === 'string' ? mock.request['_case:matcher:uniqueName'] : `Mock ${index}'s request`; }; const getResponseName = (index, mock) => { if (!('response' in mock)) { return 'No response defined'; } if (mock.response == null) { return 'null'; } return '_case:matcher:uniqueName' in mock.response && typeof mock.response['_case:matcher:uniqueName'] === 'string' ? mock.response['_case:matcher:uniqueName'] : `Mock ${index}'s response`; }; const exampleToNames = ({ states, mock }, index) => { const stateNames = states.map((state) => state.stateName).join(' and '); const requestName = getRequestName(index, mock); const responseName = getResponseName(index, mock); return { requestName, responseName, mockName: `${stateNames !== '' ? `When ${stateNames}, then ` : ''}${requestName} ${responseName}`, }; }; exports.exampleToNames = exampleToNames; const makeSuccessExample = (example) => { if (example.result !== 'PENDING') { throw new case_plugin_base_1.CaseCoreError(`Trying to make a successful example from one that wasn't pending (was ${example.result})`); } return { ...example, result: 'VERIFIED' }; }; exports.makeSuccessExample = makeSuccessExample; const makeFailedExample = (example, errors) => { if (example.result !== 'PENDING') { throw new case_plugin_base_1.CaseCoreError(`Trying to make a failed example from one that wasn't pending (was ${example.result})`); } return { ...example, result: 'FAILED', errors }; }; exports.makeFailedExample = makeFailedExample; //# sourceMappingURL=examples.js.map