added util tests for some methods

This commit is contained in:
pavantejapotnuru
2018-09-26 17:11:17 +05:30
parent b969a83ab6
commit 11b511be07
4 changed files with 585 additions and 107 deletions

View File

@@ -575,7 +575,7 @@ module.exports = {
paramType;
if (!param) {
return '';
return [];
}
// check for existence of schema
if (param.hasOwnProperty('schema')) {
@@ -978,6 +978,9 @@ module.exports = {
// console.log("path params = ", reqParams.path, pathVarArray)
_.forEach(reqParams.query, (queryParam) => {
if (queryParam.$ref) {
queryParam = this.getRefObject(queryParam.$ref);
}
this.convertToPmQueryParameters(queryParam).forEach((pmParam) => {
item.request.url.addQueryParams(pmParam);
});

234
package-lock.json generated
View File

@@ -4,6 +4,11 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"JSONSelect": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz",
"integrity": "sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40="
},
"abbrev": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
@@ -55,7 +60,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
"dev": true,
"optional": true
},
"ansi-escapes": {
@@ -201,6 +205,11 @@
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
},
"call-me-maybe": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
"integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms="
},
"caller-path": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
@@ -245,11 +254,6 @@
"supports-color": "^5.3.0"
}
},
"chance": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/chance/-/chance-1.0.16.tgz",
"integrity": "sha512-2bgDHH5bVfAXH05SPtjqrsASzZ7h90yCuYT2z4mkYpxxYvJXiIydBFzVieVHZx7wLH1Ag2Azaaej2/zA1XUrNQ=="
},
"chardet": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
@@ -273,6 +277,11 @@
"integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
"dev": true
},
"cjson": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/cjson/-/cjson-0.2.1.tgz",
"integrity": "sha1-c82KrWXZ4VBfmvF0TTt5wVJ2gqU="
},
"cli-cursor": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
@@ -365,7 +374,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
@@ -380,15 +388,14 @@
}
},
"deep-extend": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz",
"integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w=="
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
},
"deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
"dev": true
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
},
"deffy": {
"version": "2.2.2",
@@ -414,11 +421,11 @@
}
},
"deref": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/deref/-/deref-0.7.3.tgz",
"integrity": "sha512-9ROdWS8nWgz/uJxYWIDZyEAP+oANSl/pNQO27GFJWptVVocqBQ95iKmcboxjvjPQ0rn3IpJcA450hIJpznzVLg==",
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/deref/-/deref-0.7.6.tgz",
"integrity": "sha512-8en95BZvFIHY+G4bnW1292qFfubV7NSogpoBNJFCbbSPEvRGKkOfMRgVhl3AtXSdxpRQ6WMuZhMVIlpFVBB3AA==",
"requires": {
"deep-extend": "^0.5.0"
"deep-extend": "^0.6.0"
}
},
"diff": {
@@ -475,9 +482,9 @@
}
},
"drange": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/drange/-/drange-1.0.2.tgz",
"integrity": "sha512-bve7maXvfKW+vcsRpP8gzEDzkTg8O6AoCGvi/52pnllzhl/nmex8XLrHOUEQ42Z8GshcyftvG+E4s5vcd/qo0Q=="
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz",
"integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA=="
},
"duplexer2": {
"version": "0.1.4",
@@ -487,6 +494,11 @@
"readable-stream": "^2.0.2"
}
},
"ebnf-parser": {
"version": "0.1.10",
"resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz",
"integrity": "sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE="
},
"entities": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
@@ -522,7 +534,6 @@
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
"integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
"dev": true,
"requires": {
"esprima": "^2.7.1",
"estraverse": "^1.9.1",
@@ -534,20 +545,17 @@
"esprima": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
"integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
"dev": true
"integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE="
},
"estraverse": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
"integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
"dev": true
"integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q="
},
"source-map": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
"integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
"dev": true,
"optional": true,
"requires": {
"amdefine": ">=0.0.4"
@@ -706,8 +714,7 @@
"esutils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
"dev": true
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
},
"exec-limiter": {
"version": "3.2.11",
@@ -746,11 +753,6 @@
}
}
},
"faker": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/faker/-/faker-4.1.0.tgz",
"integrity": "sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8="
},
"fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
@@ -766,8 +768,7 @@
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
"dev": true
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
},
"figures": {
"version": "2.0.0",
@@ -805,6 +806,11 @@
"write": "^0.2.1"
}
},
"format-util": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/format-util/-/format-util-1.0.3.tgz",
"integrity": "sha1-Ay3KShFiYqEsQ/TD7IVmQWxbLZU="
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -1232,6 +1238,52 @@
"resolved": "https://registry.npmjs.org/iterate-object/-/iterate-object-1.3.2.tgz",
"integrity": "sha1-JOwVr/pdADnog5aVohwsrh9Ftms="
},
"jison": {
"version": "0.4.13",
"resolved": "https://registry.npmjs.org/jison/-/jison-0.4.13.tgz",
"integrity": "sha1-kEFwfWIkE2f1iDRTK58ZwsNvrHg=",
"requires": {
"JSONSelect": "0.4.0",
"cjson": "~0.2.1",
"ebnf-parser": "~0.1.9",
"escodegen": "0.0.21",
"esprima": "1.0.x",
"jison-lex": "0.2.x",
"lex-parser": "~0.1.3",
"nomnom": "1.5.2"
},
"dependencies": {
"escodegen": {
"version": "0.0.21",
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz",
"integrity": "sha1-U9ZSz6EDA4gnlFilJmxf/HCcY8M=",
"requires": {
"esprima": "~1.0.2",
"estraverse": "~0.0.4",
"source-map": ">= 0.1.2"
}
},
"esprima": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
"integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0="
},
"estraverse": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz",
"integrity": "sha1-AaCTLf7ldGhKWYr1pnw7+bZCjbI="
}
}
},
"jison-lex": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz",
"integrity": "sha1-rEuBXozOUTLrErXfz+jXB7iETf4=",
"requires": {
"lex-parser": "0.1.x",
"nomnom": "1.5.2"
}
},
"js-tokens": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
@@ -1254,15 +1306,36 @@
"dev": true
},
"json-schema-faker": {
"version": "0.4.7",
"resolved": "https://registry.npmjs.org/json-schema-faker/-/json-schema-faker-0.4.7.tgz",
"integrity": "sha512-xB1OVebUsCxW1BWVGFhRL0RHTdOz0js13CAp7OOXp5/s02wwxj+K9/QGK/9918+CKj7qpeqVZjMpGgmVsOTvmQ==",
"version": "github:pavanteja-potnuru/json-schema-faker#a84d6e6694263c47affd05b61720d68ed29b72df",
"from": "github:pavanteja-potnuru/json-schema-faker#feature/pmsupport",
"requires": {
"chance": "^1.0.11",
"deref": "^0.7.0",
"faker": "^4.1.0",
"randexp": "^0.4.6",
"tslib": "^1.8.0"
"deref": "^0.7.1",
"json-schema-ref-parser": "^5.0.0",
"jsonpath": "^1.0.0",
"randexp": "^0.4.5",
"tslib": "^1.7.1"
}
},
"json-schema-ref-parser": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-5.1.3.tgz",
"integrity": "sha512-CpDFlBwz/6la78hZxyB9FECVKGYjIIl3Ms3KLqFj99W7IIb7D00/RDgc++IGB4BBALl0QRhh5m4q5WNSopvLtQ==",
"requires": {
"call-me-maybe": "^1.0.1",
"debug": "^3.1.0",
"js-yaml": "^3.12.0",
"ono": "^4.0.6"
},
"dependencies": {
"js-yaml": {
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
"integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
}
}
},
"json-schema-traverse": {
@@ -1277,6 +1350,24 @@
"integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
"dev": true
},
"jsonpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.0.tgz",
"integrity": "sha1-Rc2dTE0NaCXZC9fkD4PxGCsT3Qc=",
"requires": {
"esprima": "1.2.2",
"jison": "0.4.13",
"static-eval": "2.0.0",
"underscore": "1.7.0"
},
"dependencies": {
"esprima": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz",
"integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs="
}
}
},
"jsonschema": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.2.tgz",
@@ -1286,12 +1377,16 @@
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"dev": true,
"requires": {
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2"
}
},
"lex-parser": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz",
"integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA="
},
"limit-it": {
"version": "3.2.8",
"resolved": "https://registry.npmjs.org/limit-it/-/limit-it-3.2.8.tgz",
@@ -1433,8 +1528,7 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"mute-stream": {
"version": "0.0.7",
@@ -1472,6 +1566,27 @@
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
"integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc="
},
"nomnom": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz",
"integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=",
"requires": {
"colors": "0.5.x",
"underscore": "1.1.x"
},
"dependencies": {
"colors": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
"integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q="
},
"underscore": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz",
"integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA="
}
}
},
"noop6": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/noop6/-/noop6-1.0.7.tgz",
@@ -1551,6 +1666,14 @@
"mimic-fn": "^1.0.0"
}
},
"ono": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/ono/-/ono-4.0.8.tgz",
"integrity": "sha512-x7IM7JLrarP9WxfjDHTBs6io1D1ixEZnhKqnjMnwz+9waPZSapkGYe7jBAqnMTL+HAMfsN6rSHW3Pi+C/9dyjg==",
"requires": {
"format-util": "^1.0.3"
}
},
"optimist": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
@@ -1579,7 +1702,6 @@
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
"dev": true,
"requires": {
"deep-is": "~0.1.3",
"fast-levenshtein": "~2.0.4",
@@ -1761,8 +1883,7 @@
"prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
"dev": true
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
},
"prepend-http": {
"version": "1.0.4",
@@ -2078,6 +2199,14 @@
"number-is-nan": "^1.0.0"
}
},
"static-eval": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.0.tgz",
"integrity": "sha512-6flshd3F1Gwm+Ksxq463LtFd1liC77N/PX1FVVc3OzL3hAmo2fwHFbuArkcfi7s9rTNsLEhcRmXGFZhlgy40uw==",
"requires": {
"escodegen": "^1.8.1"
}
},
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@@ -2185,7 +2314,6 @@
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"dev": true,
"requires": {
"prelude-ls": "~1.1.2"
}
@@ -2224,6 +2352,11 @@
"typpy": "^2.3.4"
}
},
"underscore": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
"integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk="
},
"unzip-response": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
@@ -2280,8 +2413,7 @@
"wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
"dev": true
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
},
"wrappy": {
"version": "1.0.2",

View File

@@ -173,7 +173,7 @@
"commander": ">=2.3.0",
"console-emoji": "0.0.2",
"js-yaml": "3.10.0",
"json-schema-faker": "^0.4.7",
"json-schema-faker": "pavanteja-potnuru/json-schema-faker#feature/pmsupport",
"jsonschema": "1.2.2",
"lodash": "4.17.5",
"node-uuid": ">= 1.4.1",

View File

@@ -8,61 +8,377 @@ var expect = require('chai').expect,
INVALID_OPENAPI_PATH = '../data/invalid_openapi';
/* Utility function Unit tests */
describe('------------------------------ UTILITY FUNCTION TESTS ------------------------------', function () {
// describe('addHeaders Function', function() {
// it('Should add the headers', function () {
// var item = new sdk.Item({
// name: 'postman-item',
// request: {
// url: 'https://petstore.swagger.io/api'
// }
// }),
// headers = [
// {
// name: 'X-Header-One',
// description: 'Header1'
// },
// {
// name: 'X-Header-Two',
// description: 'Header2'
// },
// {
// name: 'X-Header-Three',
// description: 'Header3'
// }
// ],
// postmanHeaders = [
// {
// 'key': 'X-Header-One',
// 'value': '',
// 'description': 'Header1'
// },
// {
// 'key': 'X-Header-Two',
// 'value': '',
// 'description': 'Header2'
// },
// {
// 'key': 'X-Header-Three',
// 'value': '',
// 'description': 'Header3'
// }
// ];
// let updatedItem = Utils.addHeaders(item, headers);
// expect(JSON.stringify(updatedItem.request.headers.members)).to.eql(JSON.stringify(postmanHeaders));
// });
describe('UTILITY FUNCTION TESTS', function () {
describe('convertToPmHeader Function', function() {
it('Should conevrt header with schema to pm header', function (done) {
var header = {
name: 'X-Header-One',
in: 'header',
description: 'Header1',
schema: {
type: 'integer',
format: 'int64'
}
};
Utils.options.schemaFaker = true;
let pmHeader = Utils.convertToPmHeader(header);
expect(pmHeader.key).to.equal(header.name);
expect(pmHeader.description).to.equal(header.description);
expect(typeof pmHeader.value).to.equal('number');
done();
});
it('Should conevrt header without schema to pm header', function (done) {
var header = {
name: 'X-Header-One',
in: 'header',
description: 'Header1'
};
Utils.options.schemaFaker = true;
let pmHeader = Utils.convertToPmHeader(header);
expect(pmHeader.key).to.equal(header.name);
expect(pmHeader.description).to.equal(header.description);
expect(pmHeader.value).to.equal('');
done();
});
});
// it('Should return the original item object if no headers are passed', function () {
// var item = new sdk.Item({
// name: 'postman-item',
// request: {
// url: 'https://petstore.swagger.io/api'
// }
// });
// let updatedItem = Utils.addHeaders(item, []);
// expect(updatedItem).to.deep.equal(item);
// });
// });
describe('convertToPmQueryParameters Function', function() {
it('Should conevrt queryParam without schema to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param'
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name);
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[0].value).to.equal('');
done();
});
describe('Should conevrt queryParam with schema {type:array, ', function() {
describe('style:form, ', function() {
it('explode:true} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
style: 'form',
explode: true,
schema: {
type: 'array',
items: {
type: 'integer',
format: 'int64'
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name);
expect(pmParam[0].description).to.equal(param.description);
expect(typeof pmParam[0].value).to.equal('number');
done();
});
it('explode:false} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
style: 'form',
explode: false,
schema: {
type: 'array',
items: {
type: 'integer',
format: 'int64'
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name);
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[0].value.indexOf(',')).to.not.equal(-1);
done();
});
});
it('style:spaceDelimited} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
style: 'spaceDelimited',
schema: {
type: 'array',
items: {
type: 'string'
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name);
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[0].value.indexOf('%20')).to.not.equal(-1);
done();
});
it('style:pipeDelimited} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
style: 'pipeDelimited',
schema: {
type: 'array',
items: {
type: 'string'
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name);
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[0].value.indexOf('|')).to.not.equal(-1);
done();
});
it('style:deepObject} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
style: 'deepObject',
schema: {
type: 'array',
items: {
type: 'string'
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name + '[]');
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[0].key.indexOf('[]')).to.not.equal(-1);
expect(pmParam[0].value.indexOf('string')).to.not.equal(-1);
done();
});
it('style:any other} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
schema: {
type: 'array',
items: {
type: 'string'
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name);
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[0].value.indexOf(',')).to.not.equal(-1);
done();
});
});
describe('Should conevrt queryParam with schema {type:object, ', function() {
describe('style:form, ', function() {
it('explode:true} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
style: 'form',
explode: true,
schema: {
type: 'object',
required: [
'id',
'name'
],
properties: {
id: {
type: 'integer',
format: 'int64'
},
name: {
type: 'string'
}
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal('id');
expect(pmParam[1].key).to.equal('name');
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[1].description).to.equal(param.description);
expect(typeof pmParam[0].value).to.equal('number');
expect(typeof pmParam[1].value).to.equal('string');
done();
});
it('explode:false} to pm header ', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
style: 'form',
explode: false,
schema: {
type: 'object',
required: [
'id',
'name'
],
properties: {
id: {
type: 'integer',
format: 'int64'
},
name: {
type: 'string'
}
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name);
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[0].value.indexOf('id')).to.not.equal(-1);
expect(pmParam[0].value.indexOf('name')).to.not.equal(-1);
done();
});
});
it('style:spaceDelimited} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
style: 'spaceDelimited',
schema: {
type: 'object',
required: [
'id',
'name'
],
properties: {
id: {
type: 'integer',
format: 'int64'
},
name: {
type: 'integer',
format: 'int64'
}
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name);
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[0].value.indexOf('%20')).to.not.equal(-1);
done();
});
it('style:pipeDelimited} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
style: 'pipeDelimited',
schema: {
type: 'object',
required: [
'id',
'name'
],
properties: {
id: {
type: 'integer',
format: 'int64'
},
name: {
type: 'integer',
format: 'int64'
}
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name);
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[0].value.indexOf('|')).to.not.equal(-1);
done();
});
it('style:deepObject} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
style: 'deepObject',
schema: {
type: 'object',
required: [
'id',
'name'
],
properties: {
id: {
type: 'integer',
format: 'int64'
},
name: {
type: 'string'
}
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name + '[id]');
expect(pmParam[1].key).to.equal(param.name + '[name]');
expect(pmParam[0].description).to.equal(param.description);
expect(pmParam[1].description).to.equal(param.description);
expect(typeof pmParam[0].value).to.equal('number');
expect(typeof pmParam[1].value).to.equal('string');
done();
});
it('style:any other} to pm header', function (done) {
var param = {
name: 'X-Header-One',
in: 'query',
description: 'query param',
schema: {
type: 'object',
required: [
'id',
'name'
],
properties: {
id: {
type: 'integer',
format: 'int64'
},
name: {
type: 'string'
}
}
}
};
Utils.options.schemaFaker = true;
let pmParam = Utils.convertToPmQueryParameters(param);
expect(pmParam[0].key).to.equal(param.name);
expect(pmParam[0].description).to.equal(param.description);
expect(typeof pmParam[0].value).to.equal('object');
done();
});
});
});
describe('getQueryStringWithStyle function', function () {
it('Should correctly return the query string with the appropriate delimiter', function (done) {
@@ -91,6 +407,33 @@ describe('------------------------------ UTILITY FUNCTION TESTS ----------------
done();
});
});
// describe.only('convertToPmBody function', function() {
// it('should convert requestbody of media type', function() {
// var requestBody = {
// description: 'body description',
// content: {
// 'application/json': {
// 'schema': {
// type: 'object',
// properties: {
// id: {
// type: 'string'
// },
// name: {
// type: 'integer',
// format: 'int64'
// }
// }
// }
// }
// }
// },
// result = Utils.convertToPmBody(requestBody);
// console.log(result);
// });
// });
});