cypress-contract-stubs
Version:
Cypress plugin for Spring Contract Stubs
31 lines • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stubsTasks = void 0;
const stubs_entries_1 = require("./stubs-entries");
const lodash_1 = require("lodash");
const debug_1 = require("../utils/debug");
function filterStubEntries(config) {
const filters = (0, lodash_1.pickBy)({
id: config === null || config === void 0 ? void 0 : config.id,
name: config === null || config === void 0 ? void 0 : config.name,
'request.method': config === null || config === void 0 ? void 0 : config.method,
'request.url': config === null || config === void 0 ? void 0 : config.url,
'response.status': config === null || config === void 0 ? void 0 : config.status,
consumer: config === null || config === void 0 ? void 0 : config.consumer
});
const stubFilters = Object.keys(filters).reduce((value, key) => (0, lodash_1.set)(value, key, filters[key]), {});
const stubs = (0, lodash_1.filter)(stubs_entries_1.stubEntries, stubFilters);
debug_1.logger.debug('stubs:filter', `Found ${stubs.length} stub with filter ${JSON.stringify(stubFilters)}`);
return stubs.length ? stubs[0] : null;
}
function getAllStubEntries() {
return stubs_entries_1.stubEntries;
}
function stubsTasks(on) {
on('task', {
'contract:stubs': getAllStubEntries,
'contract:stub': filterStubEntries
});
}
exports.stubsTasks = stubsTasks;
//# sourceMappingURL=stubs-tasks.js.map