UnsavedChanges: Should not be triggered when only going into panel edit without changing anything (#52363)

pull/52419/head
Torkel Ödegaard 3 years ago committed by GitHub
parent 1bedf33e3d
commit 38ec4c0a09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 29
      public/app/features/dashboard/components/PanelEditor/state/actions.test.ts
  2. 2
      public/app/features/dashboard/components/PanelEditor/state/actions.ts

@ -134,6 +134,35 @@ describe('panelEditor actions', () => {
expect(dispatchedActions.length).toBe(2);
expect(sourcePanel.getOptions()).toEqual({});
});
it('should not increment configRev when no changes made and leaving panel edit', async () => {
const sourcePanel = new PanelModel({ id: 12, type: 'graph' });
sourcePanel.plugin = getPanelPlugin({});
const dashboard = new DashboardModel({
panels: [{ id: 12, type: 'graph' }],
});
const panel = dashboard.initEditPanel(sourcePanel);
const state: PanelEditorState = {
...initialState(),
getPanel: () => panel,
getSourcePanel: () => sourcePanel,
};
await thunkTester({
panelEditor: state,
panels: {},
dashboard: {
getModel: () => dashboard,
},
})
.givenThunk(exitPanelEditor)
.whenThunkIsDispatched();
expect(sourcePanel.configRev).toEqual(0);
});
});
describe('skipPanelUpdate', () => {

@ -116,7 +116,7 @@ export function exitPanelEditor(): ThunkResult<void> {
dashboard.exitPanelEditor();
}
if (!shouldDiscardChanges) {
if (panel.hasChanged && !shouldDiscardChanges) {
const modifiedSaveModel = panel.getSaveModel();
const sourcePanel = getSourcePanel();
const panelTypeChanged = sourcePanel.type !== panel.type;

Loading…
Cancel
Save