grafana/public/app/features/panel/state/actions.test.ts
Levente Balogh 6e395c8275
Plugins Catalog: use createAction() instead of string action type (#40393)
* refactor(Plugins/Admin): use createAction() instead of string action type

* refactor(Panel/Actions): use the new action name in the tests
2021-10-14 08:35:04 +02:00

41 lines
1.3 KiB
TypeScript

import { PanelModel } from 'app/features/dashboard/state';
import { thunkTester } from '../../../../test/core/thunk/thunkTester';
import { changePanelPlugin } from './actions';
import { panelModelAndPluginReady } from './reducers';
import { getPanelPlugin } from 'app/features/plugins/__mocks__/pluginMocks';
import { panelPluginLoaded } from 'app/features/plugins/admin/state/actions';
jest.mock('app/features/plugins/importPanelPlugin', () => {
return {
importPanelPlugin: function () {
return Promise.resolve(
getPanelPlugin({
id: 'table',
})
);
},
};
});
describe('panel state actions', () => {
describe('changePanelPlugin', () => {
it('Should load plugin and call changePlugin', async () => {
const sourcePanel = new PanelModel({ id: 12, type: 'graph' });
const dispatchedActions = await thunkTester({
plugins: {
panels: {},
},
panels: {},
})
.givenThunk(changePanelPlugin)
.whenThunkIsDispatched(sourcePanel, 'table');
expect(dispatchedActions.length).toBe(2);
expect(dispatchedActions[0].type).toBe(panelPluginLoaded.type);
expect(dispatchedActions[1].type).toBe(panelModelAndPluginReady.type);
expect(sourcePanel.type).toBe('table');
});
});
});