diff --git a/frontend/src/metabase/routes.jsx b/frontend/src/metabase/routes.jsx index d41bcaddb8669ab9101c1b44076ba4a81103cd2a..207b3e3769858e3ba554fd4c72d37ab20d7a14bc 100644 --- a/frontend/src/metabase/routes.jsx +++ b/frontend/src/metabase/routes.jsx @@ -258,14 +258,8 @@ export const getRoutes = (store) => <Route path="table/:tableId/:cost" component={TableXRay} /> <Route path="field/:fieldId/:cost" component={FieldXRay} /> <Route path="card/:cardId/:cost" component={CardXRay} /> - <Route path="compare" title="Compare"> - <Route path="segments/:segmentId1/:segmentId2"> - <Route path=":cost" component={SegmentComparison} /> - </Route> - <Route path="segment/:segmentId/table/:tableId"> - <Route path=":cost" component={SegmentTableComparison} /> - </Route> - </Route> + <Route path="compare/segments/:segmentId1/:segmentId2/:cost" component={SegmentComparison} /> + <Route path="compare/segment/:segmentId/table/:tableId/:cost" component={SegmentTableComparison} /> </Route> {/* PULSE */} diff --git a/frontend/src/metabase/xray/SimpleStat.jsx b/frontend/src/metabase/xray/SimpleStat.jsx index e291a7ffb814876e45b365d9f7da9b7c84849672..bc17543e5d378269516b510fa4c78a6c521d72a4 100644 --- a/frontend/src/metabase/xray/SimpleStat.jsx +++ b/frontend/src/metabase/xray/SimpleStat.jsx @@ -14,7 +14,7 @@ const SimpleStat = ({ stat, showDescription }) => </div> { /* call toString to ensure that values like true / false show up */ } <h1 className="my1"> - {stat.value.toString()} + {stat.value ? stat.value.toString() : "No value"} </h1> </div> diff --git a/frontend/test/__support__/sample_dataset_fixture.js b/frontend/test/__support__/sample_dataset_fixture.js index 1f2b221837ab72a836d5be7ac7a5e89b48a5e222..3dbaa2a5f50d7eb4f6249f4731a9f12b20735527 100644 --- a/frontend/test/__support__/sample_dataset_fixture.js +++ b/frontend/test/__support__/sample_dataset_fixture.js @@ -1561,14 +1561,14 @@ export const productQuestion = new Question(metadata, product_card); const NoFieldsMetadata = getMetadata(assocIn(state, ["metadata", "tables", ORDERS_TABLE_ID, "fields"], [])) export const questionNoFields = new Question(NoFieldsMetadata, card); -export const orders_past_30_days_segment = { +export const orders_past_300_days_segment = { "id": null, - "name": "Past 30 days", - "description": "Past 30 days created at", + "name": "Past 300 days", + "description": "Past 300 days created at", "table_id": 1, "definition": { "source_table": 1, - "filter": ["time-interval", ["field-id", 1], -30, "day"] + "filter": ["time-interval", ["field-id", 1], -300, "day"] } }; diff --git a/frontend/test/home/HomepageApp.integ.spec.js b/frontend/test/home/HomepageApp.integ.spec.js index 3aecd44370ed11f83553f856bdd3f9c21022260f..fb95e7a7a8d4abe03374e0cc0d5526d72cdde46a 100644 --- a/frontend/test/home/HomepageApp.integ.spec.js +++ b/frontend/test/home/HomepageApp.integ.spec.js @@ -8,7 +8,7 @@ import { click } from "__support__/enzyme_utils" import React from 'react'; import { mount } from "enzyme"; import { - orders_past_30_days_segment, + orders_past_300_days_segment, unsavedOrderCountQuestion, vendor_count_metric } from "__support__/sample_dataset_fixture"; @@ -37,7 +37,7 @@ describe("HomepageApp", () => { // Delays are required for having separable creation times for each entity questionId = (await createSavedQuestion(unsavedOrderCountQuestion)).id() await delay(100); - segmentId = (await SegmentApi.create(orders_past_30_days_segment)).id; + segmentId = (await SegmentApi.create(orders_past_300_days_segment)).id; await delay(100); metricId = (await MetricApi.create(vendor_count_metric)).id; await delay(100); @@ -67,8 +67,8 @@ describe("HomepageApp", () => { expect(activityItems.at(0).text()).toMatch(/Vendor count/); expect(activityStories.at(0).text()).toMatch(/Tells how many vendors we have/); - expect(activityItems.at(1).text()).toMatch(/Past 30 days/); - expect(activityStories.at(1).text()).toMatch(/Past 30 days created at/); + expect(activityItems.at(1).text()).toMatch(/Past 300 days/); + expect(activityStories.at(1).text()).toMatch(/Past 300 days created at/); // eslint-disable-next-line no-irregular-whitespace expect(activityItems.at(2).text()).toMatch(/You saved a question about Orders/); diff --git a/frontend/test/query_builder/components/FieldList.integ.spec.js b/frontend/test/query_builder/components/FieldList.integ.spec.js index 5e7860cabf66b27016a925f1ce4fee1f4a6f1569..462adfc3fb50da2e6dfb3ed0d74f608efc12d313 100644 --- a/frontend/test/query_builder/components/FieldList.integ.spec.js +++ b/frontend/test/query_builder/components/FieldList.integ.spec.js @@ -9,7 +9,7 @@ import Question from "metabase-lib/lib/Question"; import { DATABASE_ID, ORDERS_TABLE_ID, - orders_past_30_days_segment + orders_past_300_days_segment } from "__support__/sample_dataset_fixture"; import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery"; @@ -55,7 +55,7 @@ describe('FieldList', () => { it("should show the query definition tooltip correctly for a segment", async () => { // TODO Atte Keinänen 6/27/17: Check why the result is wrapped in a promise that needs to be resolved manually - const segment = await (await createSegment(orders_past_30_days_segment)).payload; + const segment = await (await createSegment(orders_past_300_days_segment)).payload; const store = await createTestStore() await store.dispatch(fetchDatabases()); @@ -80,6 +80,6 @@ describe('FieldList', () => { expect(tooltipContent.length).toBe(1) // eslint-disable-next-line no-irregular-whitespace - expect(tooltipContent.find(FilterWidget).last().text()).toMatch(/Created At -30day/); + expect(tooltipContent.find(FilterWidget).last().text()).toMatch(/Created At -300day/); }) }); \ No newline at end of file diff --git a/frontend/test/query_builder/components/dataref/SegmentPane.integ.spec.js b/frontend/test/query_builder/components/dataref/SegmentPane.integ.spec.js index 171b1aae8d28146b0ab962baa02e01c28be34385..de0090d57b8c260958f280636062c7b98fc27400 100644 --- a/frontend/test/query_builder/components/dataref/SegmentPane.integ.spec.js +++ b/frontend/test/query_builder/components/dataref/SegmentPane.integ.spec.js @@ -15,7 +15,7 @@ import { delay } from "metabase/lib/promise" import QueryBuilder from "metabase/query_builder/containers/QueryBuilder"; import DataReference from "metabase/query_builder/components/dataref/DataReference"; -import { orders_past_30_days_segment } from "__support__/sample_dataset_fixture"; +import { orders_past_300_days_segment } from "__support__/sample_dataset_fixture"; import { FETCH_TABLE_METADATA } from "metabase/redux/metadata"; import QueryDefinition from "metabase/query_builder/components/dataref/QueryDefinition"; import QueryButton from "metabase/components/QueryButton"; @@ -32,7 +32,7 @@ describe("SegmentPane", () => { beforeAll(async () => { await login(); - segment = await SegmentApi.create(orders_past_30_days_segment); + segment = await SegmentApi.create(orders_past_300_days_segment); store = await createTestStore() store.pushPath(Urls.plainQuestion()); @@ -64,7 +64,7 @@ describe("SegmentPane", () => { // then we can replace this with `store.waitForActions([FETCH_TABLE_FOREIGN_KEYS])` or similar await delay(3000) - click(dataReference.find(`a[children="${orders_past_30_days_segment.name}"]`).first()) + click(dataReference.find(`a[children="${orders_past_300_days_segment.name}"]`).first()) await store.waitForActions([FETCH_TABLE_METADATA]); }); @@ -72,7 +72,7 @@ describe("SegmentPane", () => { it("shows you the correct segment definition", () => { const queryDefinition = queryBuilder.find(DataReference).find(QueryDefinition); // eslint-disable-next-line no-irregular-whitespace - expect(queryDefinition.text()).toMatch(/Created At -30day/); + expect(queryDefinition.text()).toMatch(/Created At -300day/); }) it("lets you apply the filter to your current query", async () => { @@ -87,7 +87,7 @@ describe("SegmentPane", () => { expect(queryBuilder.find(DataReference).find(UseForButton).length).toBe(0); }); - it("lets you see count of rows for past 30 days", async () => { + it("lets you see count of rows for past 300 days", async () => { const numberQueryButton = queryBuilder.find(DataReference).find(QueryButton).at(0); try { @@ -103,7 +103,7 @@ describe("SegmentPane", () => { // expect(queryBuilder.find(Scalar).text()).toBe("1,236") }); - it("lets you see raw data for past 30 days", async () => { + it("lets you see raw data for past 300 days", async () => { const allQueryButton = queryBuilder.find(DataReference).find(QueryButton).at(1); try { diff --git a/frontend/test/query_builder/new_question.integ.spec.js b/frontend/test/query_builder/new_question.integ.spec.js index a7c84a39efaa74c09857d15e260575905f7a9bf2..2f0c601f188cc41916e8737940b4ef9ecca37bbc 100644 --- a/frontend/test/query_builder/new_question.integ.spec.js +++ b/frontend/test/query_builder/new_question.integ.spec.js @@ -113,7 +113,7 @@ describe("new question flow", async () => { await store.waitForActions([RESET_QUERY, FETCH_METRICS, FETCH_SEGMENTS, FETCH_DATABASES]); await store.waitForActions([SET_REQUEST_STATE]); - click(app.find(NewQueryOption).filterWhere((c) => c.prop('title') === "SQL")) + click(app.find(NewQueryOption).filterWhere((c) => c.prop('title') === "Native query")) await store.waitForActions(INITIALIZE_QB); expect(getQuery(store.getState()) instanceof NativeQuery).toBe(true)