| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import { mockExploreState } from 'test/mocks/mockExploreState';
- import { epicTester } from 'test/core/redux/epicTester';
- import { processQueryErrorsAction, queryFailureAction } from '../actionTypes';
- import { processQueryErrorsEpic } from './processQueryErrorsEpic';
- describe('processQueryErrorsEpic', () => {
- let originalConsoleError = console.error;
- beforeEach(() => {
- originalConsoleError = console.error;
- console.error = jest.fn();
- });
- afterEach(() => {
- console.error = originalConsoleError;
- });
- describe('when processQueryErrorsAction is dispatched', () => {
- describe('and datasourceInstance is the same', () => {
- describe('and the response is not cancelled', () => {
- it('then queryFailureAction is dispatched', () => {
- const { datasourceId, exploreId, state, eventBridge } = mockExploreState();
- const response = { message: 'Something went terribly wrong!' };
- epicTester(processQueryErrorsEpic, state)
- .whenActionIsDispatched(processQueryErrorsAction({ exploreId, datasourceId, response }))
- .thenResultingActionsEqual(queryFailureAction({ exploreId, response }));
- expect(console.error).toBeCalledTimes(1);
- expect(console.error).toBeCalledWith(response);
- expect(eventBridge.emit).toBeCalledTimes(1);
- expect(eventBridge.emit).toBeCalledWith('data-error', response);
- });
- });
- describe('and the response is cancelled', () => {
- it('then no actions are dispatched', () => {
- const { datasourceId, exploreId, state, eventBridge } = mockExploreState();
- const response = { cancelled: true, message: 'Something went terribly wrong!' };
- epicTester(processQueryErrorsEpic, state)
- .whenActionIsDispatched(processQueryErrorsAction({ exploreId, datasourceId, response }))
- .thenNoActionsWhereDispatched();
- expect(console.error).not.toBeCalled();
- expect(eventBridge.emit).not.toBeCalled();
- });
- });
- });
- describe('and datasourceInstance is not the same', () => {
- describe('and the response is not cancelled', () => {
- it('then no actions are dispatched', () => {
- const { exploreId, state, eventBridge } = mockExploreState();
- const response = { message: 'Something went terribly wrong!' };
- epicTester(processQueryErrorsEpic, state)
- .whenActionIsDispatched(processQueryErrorsAction({ exploreId, datasourceId: 'other id', response }))
- .thenNoActionsWhereDispatched();
- expect(console.error).not.toBeCalled();
- expect(eventBridge.emit).not.toBeCalled();
- });
- });
- });
- });
- });
|