Skip to content

Commit c5aa5da

Browse files
Update queries.latest_query_data on save (#7560)
* Update queries.latest_query_data on save * Add wait on test as loading query and query results may re-render DOM and that makes test fraky * Fix styling report by prettier
1 parent 9503cc9 commit c5aa5da

File tree

15 files changed

+126
-173
lines changed

15 files changed

+126
-173
lines changed

client/cypress/integration/dashboard/filters_spec.js

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe("Dashboard Filters", () => {
2323
name: "Query Filters",
2424
query: `SELECT stage1 AS "stage1::filter", stage2, value FROM (${SQL}) q`,
2525
};
26-
cy.createDashboard("Dashboard Filters").then(dashboard => {
26+
cy.createDashboard("Dashboard Filters").then((dashboard) => {
2727
createQueryAndAddWidget(dashboard.id, queryData)
2828
.as("widget1TestId")
2929
.then(() => createQueryAndAddWidget(dashboard.id, queryData, { position: { col: 4 } }))
@@ -32,26 +32,23 @@ describe("Dashboard Filters", () => {
3232
});
3333
});
3434

35-
it("filters rows in a Table Visualization", function() {
35+
it("filters rows in a Table Visualization", function () {
3636
editDashboard();
3737
cy.getByTestId("DashboardFilters").should("not.exist");
3838
cy.getByTestId("DashboardFiltersCheckbox").click();
3939

4040
cy.getByTestId("DashboardFilters").within(() => {
41-
cy.getByTestId("FilterName-stage1::filter")
42-
.find(".ant-select-selection-item")
43-
.should("have.text", "a");
41+
cy.getByTestId("FilterName-stage1::filter").find(".ant-select-selection-item").should("have.text", "a");
4442
});
4543

4644
cy.getByTestId(this.widget1TestId).within(() => {
4745
expectTableToHaveLength(4);
4846
expectFirstColumnToHaveMembers(["a", "a", "a", "a"]);
4947

50-
cy.getByTestId("FilterName-stage1::filter")
51-
.find(".ant-select")
52-
.click();
48+
cy.getByTestId("FilterName-stage1::filter").find(".ant-select").click();
5349
});
5450

51+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
5552
cy.contains(".ant-select-item-option-content:visible", "b").click();
5653

5754
cy.getByTestId(this.widget1TestId).within(() => {
@@ -69,14 +66,13 @@ describe("Dashboard Filters", () => {
6966
// assert that changing a global filter affects all widgets
7067

7168
cy.getByTestId("DashboardFilters").within(() => {
72-
cy.getByTestId("FilterName-stage1::filter")
73-
.find(".ant-select")
74-
.click();
69+
cy.getByTestId("FilterName-stage1::filter").find(".ant-select").click();
7570
});
7671

72+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
7773
cy.contains(".ant-select-item-option-content:visible", "c").click();
7874

79-
[this.widget1TestId, this.widget2TestId].forEach(widgetTestId =>
75+
[this.widget1TestId, this.widget2TestId].forEach((widgetTestId) =>
8076
cy.getByTestId(widgetTestId).within(() => {
8177
expectTableToHaveLength(4);
8278
expectFirstColumnToHaveMembers(["c", "c", "c", "c"]);

client/cypress/integration/embed/share_embed_spec.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ describe("Embedded Queries", () => {
55
});
66

77
it("is unavailable when public urls feature is disabled", () => {
8-
cy.createQuery({ query: "select name from users order by name" }).then(query => {
8+
cy.createQuery({ query: "select name from users order by name" }).then((query) => {
99
cy.visit(`/queries/${query.id}/source`);
10+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
1011
cy.getByTestId("ExecuteButton").click();
1112
cy.getByTestId("QueryPageVisualizationTabs", { timeout: 10000 }).should("exist");
1213
cy.clickThrough(`
@@ -15,17 +16,15 @@ describe("Embedded Queries", () => {
1516
`);
1617
cy.getByTestId("EmbedIframe")
1718
.invoke("text")
18-
.then(embedUrl => {
19+
.then((embedUrl) => {
1920
// disable the feature
2021
cy.updateOrgSettings({ disable_public_urls: true });
2122

2223
// check the feature is disabled
2324
cy.visit(`/queries/${query.id}/source`);
2425
cy.getByTestId("QueryPageVisualizationTabs", { timeout: 10000 }).should("exist");
2526
cy.getByTestId("QueryPageHeaderMoreButton").click();
26-
cy.get(".ant-dropdown-menu-item")
27-
.should("exist")
28-
.should("not.contain", "Show API Key");
27+
cy.get(".ant-dropdown-menu-item").should("exist").should("not.contain", "Show API Key");
2928
cy.getByTestId("QueryControlDropdownButton").click();
3029
cy.get(".ant-dropdown-menu-item").should("exist");
3130
cy.getByTestId("ShowEmbedDialogButton").should("not.exist");
@@ -42,8 +41,9 @@ describe("Embedded Queries", () => {
4241
});
4342

4443
it("can be shared without parameters", () => {
45-
cy.createQuery({ query: "select name from users order by name" }).then(query => {
44+
cy.createQuery({ query: "select name from users order by name" }).then((query) => {
4645
cy.visit(`/queries/${query.id}/source`);
46+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
4747
cy.getByTestId("ExecuteButton").click();
4848
cy.getByTestId("QueryPageVisualizationTabs", { timeout: 10000 }).should("exist");
4949
cy.clickThrough(`
@@ -52,7 +52,7 @@ describe("Embedded Queries", () => {
5252
`);
5353
cy.getByTestId("EmbedIframe")
5454
.invoke("text")
55-
.then(embedUrl => {
55+
.then((embedUrl) => {
5656
cy.logout();
5757
cy.visit(embedUrl);
5858
cy.getByTestId("VisualizationEmbed", { timeout: 10000 }).should("exist");
@@ -90,7 +90,7 @@ describe("Embedded Queries", () => {
9090

9191
cy.getByTestId("EmbedIframe")
9292
.invoke("text")
93-
.then(embedUrl => {
93+
.then((embedUrl) => {
9494
cy.logout();
9595
cy.visit(embedUrl);
9696
cy.getByTestId("VisualizationEmbed", { timeout: 10000 }).should("exist");

client/cypress/integration/visualizations/box_plot_spec.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ describe("Box Plot", () => {
4444
.then(({ id }) => cy.createVisualization(id, "BOXPLOT", "Boxplot (Deprecated)", {}))
4545
.then(({ id: visualizationId, query_id: queryId }) => {
4646
cy.visit(`queries/${queryId}/source#${visualizationId}`);
47+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
4748
cy.getByTestId("ExecuteButton").click();
4849
});
4950
});
@@ -61,9 +62,7 @@ describe("Box Plot", () => {
6162
// Wait for proper initialization of visualization
6263
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
6364

64-
cy.getByTestId("VisualizationPreview")
65-
.find("svg")
66-
.should("exist");
65+
cy.getByTestId("VisualizationPreview").find("svg").should("exist");
6766

6867
cy.percySnapshot("Visualizations - Box Plot", { widths: [viewportWidth] });
6968
});

client/cypress/integration/visualizations/chart_spec.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ describe("Chart", () => {
3131

3232
it("creates Bar charts", function () {
3333
cy.visit(`queries/${this.queryId}/source`);
34+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
3435
cy.getByTestId("ExecuteButton").click();
3536

3637
const getBarChartAssertionFunction =
@@ -109,6 +110,7 @@ describe("Chart", () => {
109110
});
110111
it("colors Bar charts", function () {
111112
cy.visit(`queries/${this.queryId}/source`);
113+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
112114
cy.getByTestId("ExecuteButton").click();
113115
cy.getByTestId("NewVisualization").click();
114116
cy.getByTestId("Chart.ColumnMapping.x").selectAntdOption("Chart.ColumnMapping.x.stage");
@@ -123,6 +125,7 @@ describe("Chart", () => {
123125
});
124126
it("colors Pie charts", function () {
125127
cy.visit(`queries/${this.queryId}/source`);
128+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
126129
cy.getByTestId("ExecuteButton").click();
127130
cy.getByTestId("NewVisualization").click();
128131
cy.getByTestId("Chart.GlobalSeriesType").click();

client/cypress/integration/visualizations/choropleth_spec.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ describe("Choropleth", () => {
3434
cy.login();
3535
cy.createQuery({ query: SQL }).then(({ id }) => {
3636
cy.visit(`queries/${id}/source`);
37+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
3738
cy.getByTestId("ExecuteButton").click();
3839
});
3940
cy.getByTestId("NewVisualization").click();
@@ -76,9 +77,7 @@ describe("Choropleth", () => {
7677

7778
// Wait for proper initialization of visualization
7879
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
79-
cy.getByTestId("VisualizationPreview")
80-
.find(".map-visualization-container.leaflet-container")
81-
.should("exist");
80+
cy.getByTestId("VisualizationPreview").find(".map-visualization-container.leaflet-container").should("exist");
8281

8382
cy.percySnapshot("Visualizations - Choropleth", { widths: [viewportWidth] });
8483
});

client/cypress/integration/visualizations/cohort_spec.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ describe("Cohort", () => {
2424
cy.login();
2525
cy.createQuery({ query: SQL }).then(({ id }) => {
2626
cy.visit(`queries/${id}/source`);
27+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
2728
cy.getByTestId("ExecuteButton").click();
2829
});
2930
cy.getByTestId("NewVisualization").click();
@@ -51,9 +52,7 @@ describe("Cohort", () => {
5152

5253
// Wait for proper initialization of visualization
5354
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
54-
cy.getByTestId("VisualizationPreview")
55-
.find("table")
56-
.should("exist");
55+
cy.getByTestId("VisualizationPreview").find("table").should("exist");
5756
cy.percySnapshot("Visualizations - Cohort (simple)", { widths: [viewportWidth] });
5857

5958
cy.clickThrough(`
@@ -64,9 +63,7 @@ describe("Cohort", () => {
6463

6564
// Wait for proper initialization of visualization
6665
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
67-
cy.getByTestId("VisualizationPreview")
68-
.find("table")
69-
.should("exist");
66+
cy.getByTestId("VisualizationPreview").find("table").should("exist");
7067
cy.percySnapshot("Visualizations - Cohort (diagonal)", { widths: [viewportWidth] });
7168
});
7269
});

client/cypress/integration/visualizations/counter_spec.js

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ describe("Counter", () => {
1212
cy.login();
1313
cy.createQuery({ query: SQL }).then(({ id }) => {
1414
cy.visit(`queries/${id}/source`);
15+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
1516
cy.getByTestId("ExecuteButton").click();
1617
});
1718
cy.getByTestId("NewVisualization").click();
@@ -24,9 +25,7 @@ describe("Counter", () => {
2425
Counter.General.ValueColumn.a
2526
`);
2627

27-
cy.getByTestId("VisualizationPreview")
28-
.find(".counter-visualization-container")
29-
.should("exist");
28+
cy.getByTestId("VisualizationPreview").find(".counter-visualization-container").should("exist");
3029

3130
// wait a bit before taking snapshot
3231
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
@@ -43,9 +42,7 @@ describe("Counter", () => {
4342
"Counter.General.Label": "Custom Label",
4443
});
4544

46-
cy.getByTestId("VisualizationPreview")
47-
.find(".counter-visualization-container")
48-
.should("exist");
45+
cy.getByTestId("VisualizationPreview").find(".counter-visualization-container").should("exist");
4946

5047
// wait a bit before taking snapshot
5148
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
@@ -65,9 +62,7 @@ describe("Counter", () => {
6562
"Counter.General.TargetValueRowNumber": "2",
6663
});
6764

68-
cy.getByTestId("VisualizationPreview")
69-
.find(".counter-visualization-container")
70-
.should("exist");
65+
cy.getByTestId("VisualizationPreview").find(".counter-visualization-container").should("exist");
7166

7267
// wait a bit before taking snapshot
7368
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
@@ -83,9 +78,7 @@ describe("Counter", () => {
8378
Counter.General.TargetValueColumn.b
8479
`);
8580

86-
cy.getByTestId("VisualizationPreview")
87-
.find(".counter-visualization-container")
88-
.should("exist");
81+
cy.getByTestId("VisualizationPreview").find(".counter-visualization-container").should("exist");
8982

9083
// wait a bit before taking snapshot
9184
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
@@ -106,9 +99,7 @@ describe("Counter", () => {
10699
"Counter.General.TargetValueRowNumber": "2",
107100
});
108101

109-
cy.getByTestId("VisualizationPreview")
110-
.find(".counter-visualization-container")
111-
.should("exist");
102+
cy.getByTestId("VisualizationPreview").find(".counter-visualization-container").should("exist");
112103

113104
// wait a bit before taking snapshot
114105
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
@@ -123,9 +114,7 @@ describe("Counter", () => {
123114
Counter.General.CountRows
124115
`);
125116

126-
cy.getByTestId("VisualizationPreview")
127-
.find(".counter-visualization-container")
128-
.should("exist");
117+
cy.getByTestId("VisualizationPreview").find(".counter-visualization-container").should("exist");
129118

130119
// wait a bit before taking snapshot
131120
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
@@ -151,9 +140,7 @@ describe("Counter", () => {
151140
"Counter.Formatting.StringSuffix": "%",
152141
});
153142

154-
cy.getByTestId("VisualizationPreview")
155-
.find(".counter-visualization-container")
156-
.should("exist");
143+
cy.getByTestId("VisualizationPreview").find(".counter-visualization-container").should("exist");
157144

158145
// wait a bit before taking snapshot
159146
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
@@ -180,9 +167,7 @@ describe("Counter", () => {
180167
"Counter.Formatting.StringSuffix": "%",
181168
});
182169

183-
cy.getByTestId("VisualizationPreview")
184-
.find(".counter-visualization-container")
185-
.should("exist");
170+
cy.getByTestId("VisualizationPreview").find(".counter-visualization-container").should("exist");
186171

187172
// wait a bit before taking snapshot
188173
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting

client/cypress/integration/visualizations/edit_visualization_dialog_spec.js

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,25 @@ describe("Edit visualization dialog", () => {
55
cy.login();
66
cy.createQuery().then(({ id }) => {
77
cy.visit(`queries/${id}/source`);
8+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
89
cy.getByTestId("ExecuteButton").click();
910
});
1011
});
1112

1213
it("opens New Visualization dialog", () => {
13-
cy.getByTestId("NewVisualization")
14-
.should("exist")
15-
.click();
14+
cy.getByTestId("NewVisualization").should("exist").click();
1615
cy.getByTestId("EditVisualizationDialog").should("exist");
1716
// Default visualization should be selected
18-
cy.getByTestId("VisualizationType")
19-
.should("exist")
20-
.should("contain", "Chart");
21-
cy.getByTestId("VisualizationName")
22-
.should("exist")
23-
.should("have.value", "Chart");
17+
cy.getByTestId("VisualizationType").should("exist").should("contain", "Chart");
18+
cy.getByTestId("VisualizationName").should("exist").should("have.value", "Chart");
2419
});
2520

2621
it("opens Edit Visualization dialog", () => {
2722
cy.getByTestId("EditVisualization").click();
2823
cy.getByTestId("EditVisualizationDialog").should("exist");
2924
// Default `Table` visualization should be selected
30-
cy.getByTestId("VisualizationType")
31-
.should("exist")
32-
.should("contain", "Table");
33-
cy.getByTestId("VisualizationName")
34-
.should("exist")
35-
.should("have.value", "Table");
25+
cy.getByTestId("VisualizationType").should("exist").should("contain", "Table");
26+
cy.getByTestId("VisualizationName").should("exist").should("have.value", "Table");
3627
});
3728

3829
it("creates visualization with custom name", () => {
@@ -44,15 +35,9 @@ describe("Edit visualization dialog", () => {
4435
VisualizationType.TABLE
4536
`);
4637

47-
cy.getByTestId("VisualizationName")
48-
.clear()
49-
.type(visualizationName);
38+
cy.getByTestId("VisualizationName").clear().type(visualizationName);
5039

51-
cy.getByTestId("EditVisualizationDialog")
52-
.contains("button", "Save")
53-
.click();
54-
cy.getByTestId("QueryPageVisualizationTabs")
55-
.contains("span", visualizationName)
56-
.should("exist");
40+
cy.getByTestId("EditVisualizationDialog").contains("button", "Save").click();
41+
cy.getByTestId("QueryPageVisualizationTabs").contains("span", visualizationName).should("exist");
5742
});
5843
});

client/cypress/integration/visualizations/funnel_spec.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ describe("Funnel", () => {
2525
cy.login();
2626
cy.createQuery({ query: SQL }).then(({ id }) => {
2727
cy.visit(`queries/${id}/source`);
28+
cy.wait(1500); // eslint-disable-line cypress/no-unnecessary-waiting
2829
cy.getByTestId("ExecuteButton").click();
2930
});
3031
});
@@ -59,9 +60,7 @@ describe("Funnel", () => {
5960

6061
// Wait for proper initialization of visualization
6162
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
62-
cy.getByTestId("VisualizationPreview")
63-
.find("table")
64-
.should("exist");
63+
cy.getByTestId("VisualizationPreview").find("table").should("exist");
6564
cy.percySnapshot("Visualizations - Funnel (basic)", { widths: [viewportWidth] });
6665

6766
cy.clickThrough(`
@@ -81,9 +80,7 @@ describe("Funnel", () => {
8180

8281
// Wait for proper initialization of visualization
8382
cy.wait(500); // eslint-disable-line cypress/no-unnecessary-waiting
84-
cy.getByTestId("VisualizationPreview")
85-
.find("table")
86-
.should("exist");
83+
cy.getByTestId("VisualizationPreview").find("table").should("exist");
8784
cy.percySnapshot("Visualizations - Funnel (extra options)", { widths: [viewportWidth] });
8885
});
8986
});

0 commit comments

Comments
 (0)