@apideck/portman
Version:
Port OpenAPI Spec to Postman Collection, with contract & variation tests included
64 lines • 3.9 kB
JavaScript
;
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