@apideck/portman
Version:
Port OpenAPI Spec to Postman Collection, with contract & variation tests included
68 lines • 3.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assignVarFromResponseHeader = void 0;
var application_1 = require("../../application");
var utils_1 = require("../../utils");
var assignVarFromResponseHeader = function (dto) {
var pmOperation = dto.pmOperation, oaOperation = dto.oaOperation, varSetting = dto.varSetting, options = dto.options, globals = dto.globals;
if (!varSetting.responseHeaderProp)
return pmOperation;
var pmJsonData = '';
var pmVarAssign = '';
var toggleLog = (options === null || options === void 0 ? void 0 : options.logAssignVariables) === false ? '// ' : '';
if (!pmOperation.testJsonDataInjected) {
pmJsonData = [
"// Set response object as internal variable\n",
"let jsonData = {};\n",
"try {jsonData = pm.response.json();}catch(e){}\n"
].join('');
pmOperation.testJsonDataInjected = true;
}
var opsRef = pmOperation.id ? pmOperation.id : pmOperation.pathVar;
var casedProp = (0, utils_1.parseTpl)({
template: varSetting.responseHeaderProp,
oaOperation: oaOperation,
options: {
casing: globals === null || globals === void 0 ? void 0 : globals.variableCasing,
caseOnlyExpressions: true
}
});
var varProp = (0, utils_1.hasTpl)(varSetting === null || varSetting === void 0 ? void 0 : varSetting.responseHeaderProp) ? casedProp : varSetting.responseHeaderProp;
var casedVarName = (0, utils_1.parseTpl)({
template: varSetting === null || varSetting === void 0 ? void 0 : varSetting.name,
oaOperation: oaOperation,
dynamicValues: {
varProp: varProp,
opsRef: opsRef
},
options: {
casing: globals === null || globals === void 0 ? void 0 : globals.variableCasing
}
});
var varName = casedVarName;
if ((varSetting === null || varSetting === void 0 ? void 0 : varSetting.name) === undefined || (0, utils_1.hasTpl)(varSetting.name)) {
varName = casedVarName;
}
else if (varSetting.name !== '') {
varName = varSetting.name;
}
var safeVarName = (0, utils_1.sanitizeKeyForVar)(varName)
.replace(/-/g, '')
.replace(/_/g, '')
.replace(/ /g, '')
.replace(/\./g, '');
pmVarAssign = [
"// pm.collectionVariables - Set ".concat(varName, " as variable for header \n"),
"let ".concat(safeVarName, " = pm.response.headers.get(\"").concat(varProp, "\");\n"),
"if (".concat(safeVarName, " !== undefined) {\n"),
" pm.collectionVariables.set(\"".concat(varName, "\", ").concat(safeVarName, ");\n"),
" ".concat(toggleLog, "console.log(\"- use {{").concat(varName, "}} as collection variable for value\", ").concat(safeVarName, ");\n"),
"};\n"
].join('');
console.log("- Set variable for \"".concat(opsRef, "\" - use {{").concat(varName, "}} as variable for \"header.").concat(varProp, "\""));
(0, application_1.writeOperationTestScript)(pmOperation, pmJsonData);
(0, application_1.writeOperationTestScript)(pmOperation, pmVarAssign);
return pmOperation;
};
exports.assignVarFromResponseHeader = assignVarFromResponseHeader;
//# sourceMappingURL=assignVarFromResponseHeader.js.map