Skip to content
Snippets Groups Projects
Unverified Commit 13d8dabd authored by Alexander Polyankin's avatar Alexander Polyankin Committed by GitHub
Browse files

Fix cancelling of editing of a metric (#48081)

parent 7ffdd997
No related branches found
No related tags found
No related merge requests found
......@@ -164,6 +164,26 @@ describe("scenarios > metrics > editing", () => {
verifyScalarValue("18,760");
});
});
it("should not crash when cancelling creation of a new metric (metabase#48024)", () => {
startNewMetric();
entityPickerModal().within(() => {
entityPickerModalTab("Tables").click();
cy.findByText("Orders").click();
});
cancelMetricEditing();
});
it("should not crash when cancelling editing of an existing metric (metabase#48024)", () => {
createQuestion(ORDERS_SCALAR_METRIC).then(({ body: card }) =>
visitMetric(card.id),
);
openQuestionActions();
popover().findByText("Edit metric definition").click();
addBreakout({ tableName: "Product", columnName: "Created At" });
cancelMetricEditing();
verifyScalarValue("18,760");
});
});
describe("data source", () => {
......@@ -616,3 +636,16 @@ function verifyLineAreaBarChart({ xAxis, yAxis }) {
cy.findByText(xAxis).should("be.visible");
});
}
function cancelMetricEditing() {
cy.log("click cancel but do not confirm");
cy.button("Cancel").click();
modal().button("Cancel").click();
modal().should("not.exist");
appBar().should("not.exist");
cy.log("click cancel and confirm");
cy.button("Cancel").click();
modal().button("Discard changes").click();
appBar().should("be.visible");
}
......@@ -12,7 +12,7 @@ import type {
} from "metabase-types/store";
import { updateUrl } from "./navigation";
import { cancelQuery, runDirtyQuestionQuery } from "./querying";
import { cancelQuery } from "./querying";
export const SET_UI_CONTROLS = "metabase/qb/SET_UI_CONTROLS";
export const setUIControls = createAction(SET_UI_CONTROLS);
......@@ -121,5 +121,4 @@ export const cancelQuestionChanges =
type: CANCEL_QUESTION_CHANGES,
payload: { card: cardBeforeChanges },
});
dispatch(runDirtyQuestionQuery());
};
......@@ -71,6 +71,7 @@ const propTypes = {
isResultDirty: PropTypes.bool.isRequired,
isRunning: PropTypes.bool.isRequired,
setQueryBuilderMode: PropTypes.func.isRequired,
runDirtyQuestionQuery: PropTypes.func.isRequired,
setDatasetEditorTab: PropTypes.func.isRequired,
setMetadataDiff: PropTypes.func.isRequired,
onSave: PropTypes.func.isRequired,
......@@ -201,6 +202,7 @@ function DatasetEditor(props) {
isDirty: isModelQueryDirty,
isResultDirty,
setQueryBuilderMode,
runDirtyQuestionQuery,
runQuestionQuery,
setDatasetEditorTab,
setMetadataDiff,
......@@ -327,6 +329,7 @@ function DatasetEditor(props) {
const handleCancelEdit = () => {
setShowCancelEditWarning(false);
cancelQuestionChanges();
runDirtyQuestionQuery();
setQueryBuilderMode("view");
};
......
......@@ -414,6 +414,7 @@ class View extends Component {
runQuestionQuery,
cancelQuery,
setQueryBuilderMode,
runDirtyQuestionQuery,
isShowingQuestionInfoSidebar,
isShowingQuestionSettingsSidebar,
cancelQuestionChanges,
......@@ -457,8 +458,9 @@ class View extends Component {
setQueryBuilderMode("view");
}}
onCancel={question => {
cancelQuestionChanges();
if (question.isSaved()) {
cancelQuestionChanges();
runDirtyQuestionQuery();
setQueryBuilderMode("view");
} else {
onChangeLocation("/");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment