diff --git a/lib/spec.js b/lib/spec.js index 031bc65..eb5b037 100644 --- a/lib/spec.js +++ b/lib/spec.js @@ -452,7 +452,7 @@ export default class Spec { let customCookies = additionalOptions.cookies || {}; return Object.assign({}, defaultCookies, customCookies); - } + } addAdditionalRequestOptions(reqOptions) { const supportedOptions = ['followRedirect', 'followAllRedirects', 'followOriginalHttpMethod', 'encoding', 'gzip']; @@ -469,7 +469,7 @@ export default class Spec { buildRequestBody(additionalOptions, headers, method) { let bodyData = {}; - let requestContentType = headers['content-type']; + let requestContentType = headers['content-type'] || this.suite.commonHeaders['content-type']; let RequestBodyNotFoundError = customError('RequestBodyNotFoundError'); let InvalidRequestSpecificationError = customError('InvalidRequestSpecificationError'); let InvalidRequestHeaderError = customError('InvalidRequestHeaderError'); @@ -723,7 +723,7 @@ export default class Spec { } return true; - } + } _validateJSONData(response, jsonData) { let jsonBody; @@ -769,7 +769,7 @@ export default class Spec { if (values[0] !== eachJsonData.value) { throw new ResponseJSONDataMismatchError(`JSON path evaluated value did not match with expected Boolean value, json path: ${eachJsonData.path}, Actual value: ${values[0]}, Expected value: ${eachJsonData.value}`); } - } + } else { throw new Error(`Unknown json data value type, only Array, Object, RegExp, Number, Boolean & String are allowed`); } @@ -827,4 +827,4 @@ export default class Spec { } -} \ No newline at end of file +} diff --git a/test/cli/headers.spec.js b/test/cli/headers.spec.js index d7357a6..3fc9a91 100644 --- a/test/cli/headers.spec.js +++ b/test/cli/headers.spec.js @@ -18,7 +18,7 @@ describe('headers', function () { expect(reportData.passedSuitesCount).to.equal(0); expect(reportData.skippedSuitesCount).to.equal(0); expect(reportData.failedSuitesCount).to.equal(1); - expect(reportData.passedTestsCount).to.equal(7); + expect(reportData.passedTestsCount).to.equal(8); expect(reportData.skippedTestsCount).to.equal(0); expect(reportData.failedTestsCount).to.equal(2); expect(reportData.suites.length).to.equal(1); @@ -92,4 +92,4 @@ describe('headers', function () { expect(test.error).to.be.a('null'); }); -}); \ No newline at end of file +}); diff --git a/test/cli/src/suites/headers.suite.yaml b/test/cli/src/suites/headers.suite.yaml index 428a8a3..babd721 100644 --- a/test/cli/src/suites/headers.suite.yaml +++ b/test/cli/src/suites/headers.suite.yaml @@ -9,6 +9,8 @@ configuration: common_headers: - name: customsuiteheader value: custom-suite-header-value + - name: content-type + value: application/json specs: - name: add suite headers to request headers request: @@ -114,4 +116,15 @@ specs: response: json_data: - path: "$.header1" - value: "header2-value" \ No newline at end of file + value: "header2-value" + - name: uses suite-level content-type header + request: + path: /echoJSONBodyResponse + method: post + payload: + body: + type: json + content: + name: Kiran + response: + status_code: 200