From a380c0af73dc42cedd9f3926d950b623502b39fa Mon Sep 17 00:00:00 2001 From: Paul Rosenzweig <paulrosenzweig@users.noreply.github.com> Date: Mon, 20 Jul 2020 09:36:52 -0400 Subject: [PATCH] fixes boolean check on including custom expression aggregation (#12949) --- frontend/src/metabase/lib/expressions/process.js | 8 +++----- .../query_builder/components/AggregationPopover.jsx | 2 +- .../test/metabase/scenarios/question/new.cy.spec.js | 13 +++++++++++-- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/frontend/src/metabase/lib/expressions/process.js b/frontend/src/metabase/lib/expressions/process.js index 45032cf68b9..508b4b432b3 100644 --- a/frontend/src/metabase/lib/expressions/process.js +++ b/frontend/src/metabase/lib/expressions/process.js @@ -21,13 +21,12 @@ export function processSource(options) { // COMPILE if (parserErrors.length > 0) { - console.log("parse errors", parserErrors); compileError = parserErrors; } else { try { expression = compile({ cst, tokenVector, ...options }); } catch (e) { - console.log("compile error", e); + console.warn("compile error", e); compileError = e; } } @@ -40,9 +39,8 @@ export function processSource(options) { tokenVector, ...options, })); - console.log("suggestions", suggestions); } catch (e) { - console.log("suggest error", e); + console.warn("suggest error", e); } } @@ -50,7 +48,7 @@ export function processSource(options) { try { syntaxTree = syntax({ cst, tokenVector, ...options }); } catch (e) { - console.log("syntax error", e); + console.warn("syntax error", e); } return { diff --git a/frontend/src/metabase/query_builder/components/AggregationPopover.jsx b/frontend/src/metabase/query_builder/components/AggregationPopover.jsx index 02f36932861..f906f35cd1b 100644 --- a/frontend/src/metabase/query_builder/components/AggregationPopover.jsx +++ b/frontend/src/metabase/query_builder/components/AggregationPopover.jsx @@ -195,7 +195,7 @@ export default class AggregationPopover extends Component { showCustom = false; showMetrics = false; } - if (table.database.hasFeature("expression-aggregations")) { + if (!table.database.hasFeature("expression-aggregations")) { showCustom = false; } diff --git a/frontend/test/metabase/scenarios/question/new.cy.spec.js b/frontend/test/metabase/scenarios/question/new.cy.spec.js index 49ab02a18bb..23a8bbaf06c 100644 --- a/frontend/test/metabase/scenarios/question/new.cy.spec.js +++ b/frontend/test/metabase/scenarios/question/new.cy.spec.js @@ -38,11 +38,20 @@ describe("scenarios > question > new", () => { cy.contains("37.65"); }); - it.skip("should show `Custom Expression` in orders metrics (Issue #12899)", () => { + it("should allow using `Custom Expression` in orders metrics", () => { // go straight to "orders" in custom questions cy.visit("/question/new?database=1&table=2&mode=notebook"); cy.findByText("Summarize").click(); - popover().contains("Custom Expression"); + popover() + .contains("Custom Expression") + .click(); + popover().within(() => { + cy.get("[contentEditable=true]").type("2 * Max([Total])"); + cy.findByPlaceholderText("Name (required)").type("twice max total"); + cy.findByText("Done").click(); + }); + cy.findByText("Visualize").click(); + cy.findByText("604.96"); }); }); }); -- GitLab