BackendSrv: Fix error alert logic (#26411)

pull/26413/head
Torkel Ödegaard 5 years ago committed by GitHub
parent 903c76415c
commit 3c1346d83a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      public/app/core/services/backend_srv.ts
  2. 21
      public/app/core/specs/backend_srv.test.ts

@ -219,7 +219,7 @@ export class BackendSrv implements BackendService {
} }
// is showErrorAlert is undefined we only show alerts non data query and local api requests // is showErrorAlert is undefined we only show alerts non data query and local api requests
if (config.showErrorAlert === undefined || isDataQuery(config.url) || !isLocalUrl(config.url)) { if (config.showErrorAlert === undefined && (isDataQuery(config.url) || !isLocalUrl(config.url))) {
return; return;
} }

@ -7,6 +7,7 @@ import { BackendSrv } from '../services/backend_srv';
import { Emitter } from '../utils/emitter'; import { Emitter } from '../utils/emitter';
import { ContextSrv, User } from '../services/context_srv'; import { ContextSrv, User } from '../services/context_srv';
import { describe, expect } from '../../../test/lib/common'; import { describe, expect } from '../../../test/lib/common';
import { BackendSrvRequest, FetchError } from '@grafana/runtime';
const getTestContext = (overides?: object) => { const getTestContext = (overides?: object) => {
const defaults = { const defaults = {
@ -217,6 +218,26 @@ describe('backendSrv', () => {
}); });
}); });
describe('when showing error alert', () => {
describe('when showErrorAlert is undefined and url is a normal api call', () => {
it('It should emit alert event for normal api errors', async () => {
const { backendSrv, appEventsMock } = getTestContext({});
backendSrv.showErrorAlert(
{
url: 'api/do/something',
} as BackendSrvRequest,
{
data: {
message: 'Something failed',
error: 'Error',
},
} as FetchError
);
expect(appEventsMock.emit).toHaveBeenCalledWith(AppEvents.alertError, ['Something failed', '']);
});
});
});
describe('when making an unsuccessful 422 call', () => { describe('when making an unsuccessful 422 call', () => {
it('then it should emit Validation failed message', async () => { it('then it should emit Validation failed message', async () => {
jest.useFakeTimers(); jest.useFakeTimers();

Loading…
Cancel
Save