mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* refactor(Plugins/Admin): use createAction() instead of string action type * refactor(Panel/Actions): use the new action name in the tests
41 lines
1.3 KiB
TypeScript
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');
|
|
});
|
|
});
|
|
});
|