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

This commit is contained in:
Torkel Ödegaard
2022-07-18 17:24:21 +02:00
committed by GitHub
parent 1bedf33e3d
commit 38ec4c0a09
2 changed files with 30 additions and 1 deletions

View File

@@ -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', () => {

View File

@@ -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;