Commit 29598d83 by Hugo Häggmark Committed by GitHub

e2e: waits for requests to minimize flakiness (#25368)

parent 69b36697
...@@ -25,6 +25,14 @@ e2e.scenario({ ...@@ -25,6 +25,14 @@ e2e.scenario({
expect(rows.length).equals(1); expect(rows.length).equals(1);
}); });
e2e().server();
e2e()
.route({
method: 'POST',
url: '/api/tsdb/query',
})
.as('apiPostQuery');
// Add query button should be visible and clicking on it should create a new row // Add query button should be visible and clicking on it should create a new row
e2e.components.QueryTab.addQuery() e2e.components.QueryTab.addQuery()
.scrollIntoView() .scrollIntoView()
...@@ -42,6 +50,8 @@ e2e.scenario({ ...@@ -42,6 +50,8 @@ e2e.scenario({
.should('be.visible') .should('be.visible')
.click(); .click();
cy.wait('@apiPostQuery');
// We expect row with refId B to exist and be visible // We expect row with refId B to exist and be visible
e2e.components.QueryEditorRows.rows().within(rows => { e2e.components.QueryEditorRows.rows().within(rows => {
expect(rows.length).equals(1); expect(rows.length).equals(1);
...@@ -63,6 +73,8 @@ e2e.scenario({ ...@@ -63,6 +73,8 @@ e2e.scenario({
.eq(1) .eq(1)
.select('CSV Metric Values'); .select('CSV Metric Values');
cy.wait('@apiPostQuery');
// Change order or query rows // Change order or query rows
// Check the order of the rows before // Check the order of the rows before
e2e.components.QueryEditorRows.rows() e2e.components.QueryEditorRows.rows()
...@@ -82,6 +94,8 @@ e2e.scenario({ ...@@ -82,6 +94,8 @@ e2e.scenario({
.eq(1) .eq(1)
.click(); .click();
cy.wait('@apiPostQuery');
// Check the order of the rows after change // Check the order of the rows after change
e2e.components.QueryEditorRows.rows() e2e.components.QueryEditorRows.rows()
.eq(0) .eq(0)
...@@ -108,6 +122,8 @@ e2e.scenario({ ...@@ -108,6 +122,8 @@ e2e.scenario({
.should('be.visible') .should('be.visible')
.click(); .click();
cy.wait('@apiPostQuery');
expectInspectorResultAndClose(keys => { expectInspectorResultAndClose(keys => {
const length = keys.length; const length = keys.length;
expect(keys[length - 1].innerText).equals('A:'); expect(keys[length - 1].innerText).equals('A:');
...@@ -119,6 +135,8 @@ e2e.scenario({ ...@@ -119,6 +135,8 @@ e2e.scenario({
.should('be.visible') .should('be.visible')
.click(); .click();
cy.wait('@apiPostQuery');
expectInspectorResultAndClose(keys => { expectInspectorResultAndClose(keys => {
const length = keys.length; const length = keys.length;
expect(keys[length - 2].innerText).equals('A:'); expect(keys[length - 2].innerText).equals('A:');
...@@ -136,6 +154,8 @@ const expectInspectorResultAndClose = (expectCallBack: (keys: any[]) => void) => ...@@ -136,6 +154,8 @@ const expectInspectorResultAndClose = (expectCallBack: (keys: any[]) => void) =>
.should('be.visible') .should('be.visible')
.click(); .click();
cy.wait('@apiPostQuery');
e2e.components.PanelInspector.Query.jsonObjectKeys() e2e.components.PanelInspector.Query.jsonObjectKeys()
.should('be.visible') .should('be.visible')
.within((keys: any) => expectCallBack(keys)); .within((keys: any) => expectCallBack(keys));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment