12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import { mockStandardFieldConfigOptions } from 'test/helpers/fieldConfig';
- import { standardEditorsRegistry, standardFieldConfigEditorRegistry } from '@grafana/data';
- import { PanelModel } from 'app/features/dashboard/state';
- import { getPanelPlugin } from 'app/features/plugins/__mocks__/pluginMocks';
- import { panelPluginLoaded } from 'app/features/plugins/admin/state/actions';
- import { thunkTester } from '../../../../test/core/thunk/thunkTester';
- import { changePanelPlugin } from './actions';
- import { panelModelAndPluginReady } from './reducers';
- jest.mock('app/features/plugins/importPanelPlugin', () => {
- return {
- importPanelPlugin: function () {
- return Promise.resolve(
- getPanelPlugin({
- id: 'table',
- }).useFieldConfig()
- );
- },
- };
- });
- standardFieldConfigEditorRegistry.setInit(() => mockStandardFieldConfigOptions());
- standardEditorsRegistry.setInit(() => mockStandardFieldConfigOptions());
- 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({
- panel: sourcePanel,
- pluginId: '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');
- });
- it('Should apply options and fieldConfig', async () => {
- const sourcePanel = new PanelModel({ id: 12, type: 'graph' });
- await thunkTester({
- plugins: {
- panels: {},
- },
- panels: {},
- })
- .givenThunk(changePanelPlugin)
- .whenThunkIsDispatched({
- panel: sourcePanel,
- pluginId: 'table',
- options: {
- showHeader: true,
- },
- fieldConfig: {
- defaults: {
- unit: 'short',
- },
- overrides: [],
- },
- });
- expect(sourcePanel.options.showHeader).toBe(true);
- expect(sourcePanel.fieldConfig.defaults.unit).toBe('short');
- });
- });
- });
|