From 479b8be639ebd4ae3c63ab1b99ca1edddf66cb80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Mart=C3=ADn?= Date: Tue, 28 Nov 2017 17:27:05 +0100 Subject: [PATCH] ensuring errored JSONP write a error status code in log --- test/unit/cartodb/base_controller.js | 50 ++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/test/unit/cartodb/base_controller.js b/test/unit/cartodb/base_controller.js index b61406c3..5c3e4092 100644 --- a/test/unit/cartodb/base_controller.js +++ b/test/unit/cartodb/base_controller.js @@ -68,4 +68,54 @@ describe('error-middleware', function() { done(); }); + + it('JSONP should return a header with error status code', function (done) { + const error = new Error('error test'); + error.label = 'test label'; + error.type = 'test type'; + error.subtype = 'test subtype'; + + const errors = [error, error]; + + const req = { + query: { callback: true } + }; + const res = { + headers: {}, + set (key, value) { + this.headers[key] = value; + }, + statusCode: 0, + status (status) { + this.statusCode = status; + }, + jsonp () {}, + send () {} + }; + + const errorHeader = { + statusCode: 400, + message: error.message, + name: error.name, + label: error.label, + type: error.type, + subtype: error.subtype, + moreErrors: [{ + message: error.message, + name: error.name, + label: error.label, + type: error.type, + subtype: error.subtype + }] + }; + + const errorFn = errorMiddleware(); + errorFn(errors, req, res); + + assert.deepEqual(res.headers, { + 'X-Tiler-Errors': JSON.stringify(errorHeader) + }); + + done(); + }); });