From 2ac8cb3275a932ecfe161e31236c1867b3c6683a Mon Sep 17 00:00:00 2001 From: artem-zakharchenko Date: Tue, 21 May 2019 09:58:38 +0200 Subject: [PATCH] fix: maps status code validation error to contain real/expected status codes --- lib/next/test/integration/validateMessage.test.js | 2 +- lib/next/test/unit/units/validateStatusCode.test.js | 2 +- lib/next/units/validateStatusCode.js | 12 +++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/next/test/integration/validateMessage.test.js b/lib/next/test/integration/validateMessage.test.js index 8ee36dd6..5bbdd718 100644 --- a/lib/next/test/integration/validateMessage.test.js +++ b/lib/next/test/integration/validateMessage.test.js @@ -299,7 +299,7 @@ describe('validateMessage', () => { assert.propertyVal( result.statusCode.results[0], 'message', - 'Real and expected data does not match.' + `Status code is '400' instead of '200'` ); }); }); diff --git a/lib/next/test/unit/units/validateStatusCode.test.js b/lib/next/test/unit/units/validateStatusCode.test.js index 651fc121..d44dfe08 100644 --- a/lib/next/test/unit/units/validateStatusCode.test.js +++ b/lib/next/test/unit/units/validateStatusCode.test.js @@ -64,7 +64,7 @@ describe('validateStatusCode', () => { assert.propertyVal( result.results[0], 'message', - 'Real and expected data does not match.' + `Status code is '200' instead of '400'` ); }); }); diff --git a/lib/next/units/validateStatusCode.js b/lib/next/units/validateStatusCode.js index e668a500..71d4fc54 100644 --- a/lib/next/units/validateStatusCode.js +++ b/lib/next/units/validateStatusCode.js @@ -10,13 +10,23 @@ const APIARY_STATUS_CODE_TYPE = 'text/vnd.apiary.status-code'; function validateStatusCode(real, expected) { const validator = new TextDiff(real.statusCode, expected.statusCode); const rawData = validator.validate(); + const results = validator.evaluateOutputToResults(); return { validator: 'TextDiff', realType: APIARY_STATUS_CODE_TYPE, expectedType: APIARY_STATUS_CODE_TYPE, rawData, - results: validator.evaluateOutputToResults() + results: results.map((result) => + Object.assign({}, result, { + message: + result.message === 'Real and expected data does not match.' + ? `Status code is '${real.statusCode}' instead of '${ + expected.statusCode + }'` + : result.message + }) + ) }; }