UNPKG

@apideck/portman

Version:

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

68 lines 3.32 kB
"use strict"; 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