diff --git a/e2e/test/scenarios/question-reproductions/reproductions-3.cy.spec.js b/e2e/test/scenarios/question-reproductions/reproductions-3.cy.spec.js index 66fc8d85f1e81ddf0c63ef3dbf3adf565e9003c1..19db1270815b7a20124a588a0218d014071767e7 100644 --- a/e2e/test/scenarios/question-reproductions/reproductions-3.cy.spec.js +++ b/e2e/test/scenarios/question-reproductions/reproductions-3.cy.spec.js @@ -718,3 +718,61 @@ describe("issue 44071", () => { .should("be.visible"); }); }); + +describe("issue 44415", () => { + beforeEach(() => { + restore(); + cy.signIn("admin"); + createQuestion( + { + query: { + "source-table": ORDERS_ID, + filter: [ + "and", + [ + "not-null", + ["field", ORDERS.DISCOUNT, { "base-type": "type/Float" }], + ], + ], + }, + visualization_settings: { + "table.columns": [ + { + name: "ID", + fieldRef: ["field", ORDERS.ID, null], + enabled: true, + }, + { + name: "DISCOUNT", + fieldRef: ["field", ORDERS.DISCOUNT, null], + enabled: true, + }, + ], + }, + }, + { wrapId: true }, + ); + }); + + it("should be able to edit a table question in the notebook editor before running its query (metabase#44415)", () => { + cy.get("@questionId").then(questionId => + cy.visit(`/question/${questionId}/notebook`), + ); + + getNotebookStep("filter") + .findAllByTestId("notebook-cell-item") + .first() + .icon("close") + .click(); + + getNotebookStep("filter").should("not.exist"); + + visualize(); + + cy.findByTestId("qb-filters-panel").should("not.exist"); + cy.get("@questionId").then(questionId => { + cy.url().should("not.include", `/question/${questionId}`); + cy.url().should("include", "question#"); + }); + }); +}); diff --git a/frontend/src/metabase/visualizations/lib/sync-settings.ts b/frontend/src/metabase/visualizations/lib/sync-settings.ts index de83fd03e89bbb2e9bae1e2eab8265762c089c94..cff705c3925739f150f0d980a1667070f893c595 100644 --- a/frontend/src/metabase/visualizations/lib/sync-settings.ts +++ b/frontend/src/metabase/visualizations/lib/sync-settings.ts @@ -27,10 +27,10 @@ export function syncVizSettingsWithSeries( const series = _series?.[0]; const previousSeries = _previousSeries?.[0]; - if (series && !series.error) { + if (series?.data && !series?.error) { newSettings = syncTableColumnSettings(newSettings, series); - if (previousSeries && !previousSeries.error) { + if (previousSeries?.data && !previousSeries?.error) { newSettings = syncGraphMetricSettings( newSettings, series,