Browse Source

Merge pull request #3905 from nocodb/fix/wait-clean-up

test: remove wait from LTAR
pull/3938/head
Raju Udava 2 years ago committed by GitHub
parent
commit
cfbf1e4a77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      scripts/cypress/integration/common/00_pre_configurations.js
  2. 4
      scripts/cypress/integration/common/1b_table_column_operations.js
  3. 15
      scripts/cypress/integration/common/3c_lookup_column.js
  4. 14
      scripts/cypress/integration/common/3d_rollup_column.js
  5. 8
      scripts/cypress/integration/common/3e_duration_column.js
  6. 27
      scripts/cypress/integration/common/3f_link_to_another_record.js
  7. 9
      scripts/cypress/integration/common/5a_user_role.js
  8. 4
      scripts/cypress/integration/common/9a_QuickTest.js
  9. 17
      scripts/cypress/support/commands.js
  10. 12
      scripts/cypress/support/page_objects/mainPage.js
  11. 22
      scripts/cypress/support/page_objects/navigation.js

7
scripts/cypress/integration/common/00_pre_configurations.js

@ -243,12 +243,7 @@ export const genTest = (apiType, dbType) => {
// wait for tab to be rendered completely // wait for tab to be rendered completely
cy.wait(2000); cy.wait(2000);
cy.closeTableTab();
cy.getSettled("button.ant-tabs-tab-remove")
.should("be.visible")
.click();
cy.get("button.ant-tabs-tab-remove").should("not.exist");
cy.wait(2000);
// first instance of updating local storage information // first instance of updating local storage information
cy.saveLocalStorage(); cy.saveLocalStorage();

4
scripts/cypress/integration/common/1b_table_column_operations.js

@ -75,9 +75,7 @@ export const genTest = (apiType, dbType) => {
.find(".nc-column-edit") .find(".nc-column-edit")
.click(); .click();
// fix me! wait till the modal rendering (input highlight) is completed cy.inputHighlightRenderWait();
// focus shifts back to the input field to select text after the dropdown is rendered
cy.wait(500);
// change column type and verify // change column type and verify
// cy.get(".nc-column-type-input").last().click(); // cy.get(".nc-column-type-input").last().click();

15
scripts/cypress/integration/common/3c_lookup_column.js

@ -11,18 +11,7 @@ export const genTest = (apiType, dbType) => {
cy.get("label").contains(label).parents(".ant-row").click(); cy.get("label").contains(label).parents(".ant-row").click();
}; };
// Run once before test- create project (rest/graphql)
//
// before(() => { // before(() => {
// cy.fileHook();
// mainPage.tabReset();
// // open a table to work on views
// //
//
// // // close team & auth tab
// // cy.get('button.ant-tabs-tab-remove').should('exist').click();
//
// cy.openTableTab("City", 25);
// }); // });
beforeEach(() => { beforeEach(() => {
@ -60,9 +49,7 @@ export const genTest = (apiType, dbType) => {
.contains("Lookup") .contains("Lookup")
.click(); .click();
// fix me! wait till the modal rendering (input highlight) is completed cy.inputHighlightRenderWait();
// focus shifts back to the input field to select text after the dropdown is rendered
cy.wait(500);
// Configure Child table & column names // Configure Child table & column names
fetchParentFromLabel("Child table"); fetchParentFromLabel("Child table");

14
scripts/cypress/integration/common/3d_rollup_column.js

@ -11,17 +11,7 @@ export const genTest = (apiType, dbType) => {
cy.get("label").contains(label).parents(".ant-row").click(); cy.get("label").contains(label).parents(".ant-row").click();
}; };
// Run once before test- create project (rest/graphql)
//
// before(() => { // before(() => {
// cy.fileHook();
// mainPage.tabReset();
//
// // // close team & auth tab
// // cy.get('button.ant-tabs-tab-remove').should('exist').click();
// // open a table to work on views
// //
// cy.openTableTab("Country", 25);
// }); // });
beforeEach(() => { beforeEach(() => {
@ -64,9 +54,7 @@ export const genTest = (apiType, dbType) => {
.contains("Rollup") .contains("Rollup")
.click(); .click();
// fix me! wait till the modal rendering (input highlight) is completed cy.inputHighlightRenderWait();
// focus shifts back to the input field to select text after the dropdown is rendered
cy.wait(500);
// Configure Child table & column names // Configure Child table & column names
fetchParentFromLabel("Child table"); fetchParentFromLabel("Child table");

8
scripts/cypress/integration/common/3e_duration_column.js

@ -57,9 +57,7 @@ export const genTest = (apiType, dbType) => {
.contains("Duration") .contains("Duration")
.click(); .click();
// fix me! wait till the modal rendering (input highlight) is completed cy.inputHighlightRenderWait();
// focus shifts back to the input field to select text after the dropdown is rendered
cy.wait(500);
// Configure Duration format // Configure Duration format
fetchParentFromLabel("Duration Format"); fetchParentFromLabel("Duration Format");
@ -101,9 +99,7 @@ export const genTest = (apiType, dbType) => {
.clear() .clear()
.type(newName); .type(newName);
// fix me! wait till the modal rendering (input highlight) is completed cy.inputHighlightRenderWait();
// focus shifts back to the input field to select text after the dropdown is rendered
cy.wait(500);
// Configure Duration format // Configure Duration format
fetchParentFromLabel("Duration Format"); fetchParentFromLabel("Duration Format");

27
scripts/cypress/integration/common/3f_link_to_another_record.js

@ -6,7 +6,7 @@ export const genTest = (apiType, dbType) => {
if (!isTestSuiteActive(apiType, dbType)) return; if (!isTestSuiteActive(apiType, dbType)) return;
// tbd: this needs a proper fix // tbd: this needs a proper fix
let waitTime = 2000; let waitTime = 0;
let clear; let clear;
describe(`${apiType.toUpperCase()} api - Link to another record`, () => { describe(`${apiType.toUpperCase()} api - Link to another record`, () => {
@ -185,7 +185,6 @@ export const genTest = (apiType, dbType) => {
// Click on `Add new row` button // Click on `Add new row` button
cy.get(".nc-add-new-row-btn:visible").should("exist"); cy.get(".nc-add-new-row-btn:visible").should("exist");
cy.get(".nc-add-new-row-btn").click(); cy.get(".nc-add-new-row-btn").click();
cy.wait(waitTime);
// Title // Title
cy.get(".nc-expand-col-Title") cy.get(".nc-expand-col-Title")
@ -205,32 +204,26 @@ export const genTest = (apiType, dbType) => {
.find(".nc-action-icon") .find(".nc-action-icon")
.should("exist") .should("exist")
.click({ force: true }); .click({ force: true });
cy.wait(waitTime);
cy.wait("@waitForCardLoad"); cy.wait("@waitForCardLoad");
cy.getActiveModal(".nc-modal-link-record") cy.getActiveModal(".nc-modal-link-record")
.find(".ant-card") .find(".ant-card")
.should("exist") .should("exist")
.eq(0) .eq(0)
.click(); .click();
cy.wait(waitTime);
// MM // MM
cy.get(".nc-expand-col-Sheet1.List").find(".ant-btn-primary").click(); cy.get(".nc-expand-col-Sheet1.List").find(".ant-btn-primary").click();
cy.wait(waitTime);
cy.wait("@waitForCardLoad"); cy.wait("@waitForCardLoad");
cy.getActiveModal(".nc-modal-link-record") cy.getActiveModal(".nc-modal-link-record")
.find(".ant-card") .find(".ant-card")
.should("exist") .should("exist")
.eq(0) .eq(0)
.click(); .click();
cy.wait(waitTime);
// HM // HM
cy.get(".nc-expand-col-Link2-1hm").find(".ant-btn-primary").click(); cy.get(".nc-expand-col-Link2-1hm").find(".ant-btn-primary").click();
cy.wait(waitTime);
cy.wait("@waitForCardLoad"); cy.wait("@waitForCardLoad");
cy.getActiveModal().find(".ant-card").should("exist").eq(0).click(); cy.getActiveModal().find(".ant-card").should("exist").eq(0).click();
cy.wait(waitTime);
// Save row // Save row
cy.getActiveDrawer(".nc-drawer-expanded-form") cy.getActiveDrawer(".nc-drawer-expanded-form")
@ -256,13 +249,11 @@ export const genTest = (apiType, dbType) => {
.getCell("Sheet1", 2) .getCell("Sheet1", 2)
.find(".nc-action-icon") .find(".nc-action-icon")
.click({ force: true }); .click({ force: true });
cy.wait(waitTime);
cy.getActiveModal(".nc-modal-link-record") cy.getActiveModal(".nc-modal-link-record")
.find(".ant-card") .find(".ant-card")
.should("exist") .should("exist")
.eq(1) .eq(1)
.click(); .click();
cy.wait(waitTime);
// MM // MM
mainPage mainPage
@ -270,13 +261,11 @@ export const genTest = (apiType, dbType) => {
.find(".nc-action-icon") .find(".nc-action-icon")
.last() .last()
.click({ force: true }); .click({ force: true });
cy.wait(waitTime);
cy.getActiveModal(".nc-modal-link-record") cy.getActiveModal(".nc-modal-link-record")
.find(".ant-card") .find(".ant-card")
.should("exist") .should("exist")
.eq(1) .eq(1)
.click(); .click();
cy.wait(waitTime);
// HM // HM
mainPage mainPage
@ -284,13 +273,11 @@ export const genTest = (apiType, dbType) => {
.find(".nc-action-icon") .find(".nc-action-icon")
.last() .last()
.click({ force: true }); .click({ force: true });
cy.wait(waitTime);
cy.getActiveModal(".nc-modal-link-record") cy.getActiveModal(".nc-modal-link-record")
.find(".ant-card") .find(".ant-card")
.should("exist") .should("exist")
.eq(1) .eq(1)
.click(); .click();
cy.wait(waitTime);
}); });
// Existing row, expand record // Existing row, expand record
@ -300,49 +287,37 @@ export const genTest = (apiType, dbType) => {
addRow(3, "2c"); addRow(3, "2c");
cy.wait(waitTime);
cy.get(".nc-row-expand").eq(2).click({ force: true }); cy.get(".nc-row-expand").eq(2).click({ force: true });
cy.wait(waitTime);
// wait for page render to complete // wait for page render to complete
cy.get('button:contains("Save row"):visible').should("exist"); cy.get('button:contains("Save row"):visible').should("exist");
// BT // BT
cy.wait(waitTime);
cy.get(".nc-expand-col-Sheet1") cy.get(".nc-expand-col-Sheet1")
.find(".nc-action-icon") .find(".nc-action-icon")
.should("exist") .should("exist")
.click({ force: true }); .click({ force: true });
cy.wait(waitTime);
// cy.wait("@waitForCardLoad");
cy.getActiveModal(".nc-modal-link-record") cy.getActiveModal(".nc-modal-link-record")
.find(".ant-card") .find(".ant-card")
.should("exist") .should("exist")
.eq(2) .eq(2)
.click(); .click();
cy.wait(waitTime);
// MM // MM
cy.get(".nc-expand-col-Sheet1.List").find(".ant-btn-primary").click(); cy.get(".nc-expand-col-Sheet1.List").find(".ant-btn-primary").click();
cy.wait(waitTime);
// cy.wait("@waitForCardLoad");
cy.getActiveModal(".nc-modal-link-record") cy.getActiveModal(".nc-modal-link-record")
.find(".ant-card") .find(".ant-card")
.should("exist") .should("exist")
.eq(2) .eq(2)
.click(); .click();
cy.wait(waitTime);
// HM // HM
cy.get(".nc-expand-col-Link2-1hm").find(".ant-btn-primary").click(); cy.get(".nc-expand-col-Link2-1hm").find(".ant-btn-primary").click();
cy.wait(waitTime);
// cy.wait("@waitForCardLoad");
cy.getActiveModal(".nc-modal-link-record") cy.getActiveModal(".nc-modal-link-record")
.find(".ant-card") .find(".ant-card")
.should("exist") .should("exist")
.eq(2) .eq(2)
.click(); .click();
cy.wait(waitTime);
cy.getActiveDrawer(".nc-drawer-expanded-form") cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button") .find("button")

9
scripts/cypress/integration/common/5a_user_role.js

@ -145,14 +145,7 @@ export const genTest = (apiType, dbType) => {
} }
if (roleType === "creator") { if (roleType === "creator") {
// kludge: wait for page load to finish cy.closeTableTab();
// close team & auth tab
// cy.wait(500);
// cy.get("button.ant-tabs-tab-remove").should("exist").click();
cy.getSettled("button.ant-tabs-tab-remove")
.should("be.visible")
.click();
cy.wait(2000);
} }
cy.saveLocalStorage(); cy.saveLocalStorage();

4
scripts/cypress/integration/common/9a_QuickTest.js

@ -113,9 +113,7 @@ export const genTest = (apiType, dbType, testMode) => {
// kludge: wait for page load to finish // kludge: wait for page load to finish
cy.wait(2000); cy.wait(2000);
// close team & auth tab cy.closeTableTab();
cy.get("button.ant-tabs-tab-remove").should("exist").click();
cy.wait(2000);
} else { } else {
cy.restoreLocalStorage(); cy.restoreLocalStorage();
} }

17
scripts/cypress/support/commands.js

@ -189,6 +189,9 @@ Cypress.Commands.add("openTableTab", (tn, rc) => {
Cypress.Commands.add("closeTableTab", (tn) => { Cypress.Commands.add("closeTableTab", (tn) => {
cy.task("log", `[closeTableTab] ${tn}`); cy.task("log", `[closeTableTab] ${tn}`);
if (tn) {
// request to close specific tab
cy.get(".ant-tabs-tab-btn") cy.get(".ant-tabs-tab-btn")
.contains(tn) .contains(tn)
.should("exist") .should("exist")
@ -197,9 +200,13 @@ Cypress.Commands.add("closeTableTab", (tn) => {
.parent() .parent()
.find("button") .find("button")
.click(); .click();
} else {
// lone tab active; close it
cy.getSettled("button.ant-tabs-tab-remove").should("be.visible").click();
cy.get("button.ant-tabs-tab-remove").should("not.exist");
}
// subsequent tab open commands will fail if tab is not closed completely // subsequent tab open commands will fail if tab is not closed completely
cy.wait(2000) cy.wait(2000);
}); });
Cypress.Commands.add("openOrCreateGqlProject", (_args) => { Cypress.Commands.add("openOrCreateGqlProject", (_args) => {
@ -403,6 +410,12 @@ Cypress.Commands.add("toastWait", (msg) => {
); );
}); });
Cypress.Commands.add("inputHighlightRenderWait", (selector) => {
// fix me! wait till the modal rendering (input highlight) is completed
// focus shifts back to the input field to select text after the dropdown is rendered
cy.wait(500);
});
// vn: view name // vn: view name
// rc: expected row count. validate row count if rc!=0 // rc: expected row count. validate row count if rc!=0
Cypress.Commands.add("openViewsTab", (vn, rc) => { Cypress.Commands.add("openViewsTab", (vn, rc) => {

12
scripts/cypress/support/page_objects/mainPage.js

@ -615,17 +615,7 @@ export class _mainPage {
}); });
} }
tabReset() { tabReset() {}
// temporary disable (kludge)
// mainPage.toolBarTopLeft(mainPage.HOME).click({ force: true });
// cy.get(".project-row").should("exist").click({ force: true });
// projectsPage.waitHomePageLoad();
// option-2
// cy.openTableTab("Country", 0);
// cy.get(".mdi-close").click({ multiple: true });
// cy.get("button.ant-tabs-tab-remove").click({ multiple: true });
// cy.get('.ant-tabs-tab-remove').should('not.exist')
}
toggleRightSidebar() { toggleRightSidebar() {
cy.get(".nc-toggle-right-navbar").should("exist").click(); cy.get(".nc-toggle-right-navbar").should("exist").click();

22
scripts/cypress/support/page_objects/navigation.js

@ -70,16 +70,6 @@ export class _loginPage {
loginAndOpenProject(apiType, dbType) { loginAndOpenProject(apiType, dbType) {
loginPage.signIn(roles.owner.credentials); loginPage.signIn(roles.owner.credentials);
projectsPage.openConfiguredProject(apiType, dbType); projectsPage.openConfiguredProject(apiType, dbType);
// if (dbType === "mysql") {
// projectsPage.openProject(staticProjects.externalREST.basic.name);
// } else if (dbType === "xcdb") {
// projectsPage.openProject(staticProjects.sampleREST.basic.name);
// } else if (dbType === "postgres") {
// projectsPage.openProject(staticProjects.pgExternalREST.basic.name);
// }
//
// // close team & auth tab
// cy.get('button.ant-tabs-tab-remove').should('exist').click();
} }
} }
@ -108,9 +98,7 @@ export class _projectsPage {
cy.wait("@waitForPageLoad"); cy.wait("@waitForPageLoad");
// close team & auth tab // close team & auth tab
cy.getSettled("button.ant-tabs-tab-remove").should("be.visible").click(); cy.closeTableTab();
cy.get("button.ant-tabs-tab-remove").should("not.exist");
cy.wait(2000);
} }
// Open existing project // Open existing project
@ -151,9 +139,7 @@ export class _projectsPage {
cy.get(".nc-metadb-project-name").should("exist"); cy.get(".nc-metadb-project-name").should("exist");
cy.contains("button", "Create").should("exist"); cy.contains("button", "Create").should("exist");
// fix me! wait till the modal rendering (input highlight) is completed cy.inputHighlightRenderWait();
// focus shifts back to the input field to select text after the dropdown is rendered
cy.wait(1000);
// feed project name // feed project name
cy.get(".nc-metadb-project-name", { timeout: 20000 }) cy.get(".nc-metadb-project-name", { timeout: 20000 })
@ -183,9 +169,7 @@ export class _projectsPage {
cy.get(".nc-extdb-proj-name").should("exist"); cy.get(".nc-extdb-proj-name").should("exist");
cy.get(".nc-extdb-btn-test-connection").should("exist"); cy.get(".nc-extdb-btn-test-connection").should("exist");
// fix me! wait till the modal rendering (input highlight) is completed cy.inputHighlightRenderWait();
// focus shifts back to the input field to select text after the dropdown is rendered
cy.wait(1000);
cy.get(".nc-extdb-proj-name").clear().type(projectName); cy.get(".nc-extdb-proj-name").clear().type(projectName);

Loading…
Cancel
Save