UNPKG

@apideck/portman

Version:

Port OpenAPI Spec to Postman Collection, with contract & variation tests included

64 lines 3.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.runNewmanWith = void 0; var tslib_1 = require("tslib"); var chalk_1 = tslib_1.__importDefault(require("chalk")); var newman_1 = tslib_1.__importDefault(require("newman")); var path_1 = tslib_1.__importDefault(require("path")); var openapi_format_1 = require("openapi-format"); var runNewmanWith = function (postmanCollectionFile, newmanEnvFile, newmanDataFile, newmanRunOptions) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var defaultNewmanOptions, iterationData, newmanRunOptionsCased, newmanOptions; return tslib_1.__generator(this, function (_a) { defaultNewmanOptions = { collection: require(path_1.default.resolve(postmanCollectionFile)), environment: require(path_1.default.resolve(newmanEnvFile)), reporters: ['cli'], reporter: { htmlextra: { showEnvironmentData: true } }, abortOnFailure: true, ignoreRedirects: true }; if (newmanDataFile) { iterationData = require(path_1.default.resolve(newmanDataFile)); defaultNewmanOptions['iterationData'] = iterationData; } newmanRunOptionsCased = Object.keys(newmanRunOptions).reduce(function (a, c) { return ((a["".concat((0, openapi_format_1.changeCase)(c, 'camelCase'))] = newmanRunOptions[c]), a); }, {}); newmanOptions = tslib_1.__assign(tslib_1.__assign({}, defaultNewmanOptions), newmanRunOptionsCased); return [2, new Promise(function (resolve, reject) { try { newman_1.default.run(newmanOptions).on('done', function (err, summary) { var _a, _b, _c, _d; var assertionFailures = Number(((_c = (_b = (_a = summary === null || summary === void 0 ? void 0 : summary.run) === null || _a === void 0 ? void 0 : _a.stats) === null || _b === void 0 ? void 0 : _b.assertions) === null || _c === void 0 ? void 0 : _c.failed) || 0); var runFailures = Array.isArray((_d = summary === null || summary === void 0 ? void 0 : summary.run) === null || _d === void 0 ? void 0 : _d.failures) ? summary.run.failures.length : 0; var hasError = Boolean(err || (summary === null || summary === void 0 ? void 0 : summary.error)); var hasFailures = assertionFailures > 0 || runFailures > 0; if (hasError || hasFailures) { console.error(chalk_1.default.red('Collection run encountered failures.')); if (err) { console.error(chalk_1.default.red(err.message)); } if (summary === null || summary === void 0 ? void 0 : summary.error) { console.error(chalk_1.default.red(summary.error.message)); } if (hasFailures) { console.error(chalk_1.default.red("Failed assertions: ".concat(assertionFailures, "; Failures: ").concat(runFailures))); } reject(err || (summary === null || summary === void 0 ? void 0 : summary.error) || new Error('Newman run failed with test failures')); } else { console.log(chalk_1.default.green('Collection run completed.')); resolve(); } }); } catch (caughtError) { reject(caughtError); } })]; }); }); }; exports.runNewmanWith = runNewmanWith; //# sourceMappingURL=runNewmanWith.js.map