fix: handling of http errors without any data (#8777)

This commit is contained in:
Jesse White 2017-07-04 16:55:13 -04:00 committed by Daniel Lee
parent d20455ab5f
commit 1940b33dc1
2 changed files with 34 additions and 1 deletions

View File

@ -179,7 +179,7 @@ export class BackendSrv {
}
// for Prometheus
if (!err.data.message && _.isString(err.data.error)) {
if (err.data && !err.data.message && _.isString(err.data.error)) {
err.data.message = err.data.error;
}

View File

@ -0,0 +1,33 @@
define([
'app/core/config',
'app/core/services/backend_srv'
], function() {
'use strict';
describe('backend_srv', function() {
var _backendSrv;
var _http;
var _httpBackend;
beforeEach(module('grafana.core'));
beforeEach(module('grafana.services'));
beforeEach(inject(function ($httpBackend, $http, backendSrv) {
_httpBackend = $httpBackend;
_http = $http;
_backendSrv = backendSrv;
}));
describe('when handling errors', function() {
it('should return the http status code', function(done) {
_httpBackend.whenGET('gateway-error').respond(502);
_backendSrv.datasourceRequest({
url: 'gateway-error'
}).catch(function(err) {
expect(err.status).to.be(502);
done();
});
_httpBackend.flush();
});
});
});
});