From ef53bf864ede68f9651e16387c2e0b6151c5f697 Mon Sep 17 00:00:00 2001 From: Raju Udava <86527202+dstala@users.noreply.github.com> Date: Mon, 19 Sep 2022 16:09:53 +0530 Subject: [PATCH] test: cy-stability-column edit operations Signed-off-by: Raju Udava <86527202+dstala@users.noreply.github.com> --- .../common/00_pre_configurations.js | 2 +- .../common/1b_table_column_operations.js | 36 +++++++-- .../integration/common/3b_formula_column.js | 30 +++++-- .../integration/common/3c_lookup_column.js | 33 ++++++-- .../integration/common/3d_rollup_column.js | 80 ++++++++++++------- .../integration/common/3e_duration_column.js | 51 +++++++++--- .../common/3f_link_to_another_record.js | 20 +++-- scripts/cypress/support/commands.js | 40 +++++----- .../cypress/support/page_objects/mainPage.js | 21 +++-- 9 files changed, 220 insertions(+), 93 deletions(-) diff --git a/scripts/cypress/integration/common/00_pre_configurations.js b/scripts/cypress/integration/common/00_pre_configurations.js index 506a16b7d1..ff5ef09ed0 100644 --- a/scripts/cypress/integration/common/00_pre_configurations.js +++ b/scripts/cypress/integration/common/00_pre_configurations.js @@ -164,7 +164,7 @@ export const genTest = (apiType, dbType) => { it("Admin SignUp", () => { cy.task("log", "This will be output to the terminal"); - loginPage.signUp(roles.owner.credentials); + loginPage.signIn(roles.owner.credentials); }); function cy_createProjectBlock(proj, apiType, dbType) { diff --git a/scripts/cypress/integration/common/1b_table_column_operations.js b/scripts/cypress/integration/common/1b_table_column_operations.js index a7c0c00494..c6f5471ef2 100644 --- a/scripts/cypress/integration/common/1b_table_column_operations.js +++ b/scripts/cypress/integration/common/1b_table_column_operations.js @@ -65,13 +65,26 @@ export const genTest = (apiType, dbType) => { .trigger("mouseover", { force: true }) .click({ force: true }); - cy.get(".nc-column-edit").click(); - cy.get(".nc-column-edit").should("not.be.visible"); + // cy.get(".nc-column-edit").click(); + // cy.get(".nc-column-edit").should("not.be.visible"); + cy.getActiveMenu(".nc-dropdown-column-operations") + .find(".nc-column-edit") + .click(); // change column type and verify - cy.get(".nc-column-type-input").last().click(); - cy.getActiveSelection('.nc-dropdown-column-type').find('.ant-select-item-option').contains("LongText").click(); - cy.get(".ant-btn-primary:visible").contains("Save").click(); + // cy.get(".nc-column-type-input").last().click(); + cy.getActiveMenu('.nc-dropdown-edit-column') + .find(".nc-column-type-input") + .last() + .click(); + cy.getActiveSelection('.nc-dropdown-column-type') + .find('.ant-select-item-option') + .contains("LongText") + .click(); + cy.getActiveMenu('.nc-dropdown-edit-column') + .find(".ant-btn-primary:visible") + .contains("Save") + .click(); cy.toastWait("Column updated"); } @@ -83,15 +96,22 @@ export const genTest = (apiType, dbType) => { .trigger("mouseover", { force: true }) .click({ force: true }); - cy.get(".nc-column-edit").click(); - cy.get(".nc-column-edit").should("not.be.visible"); + // cy.get(".nc-column-edit").click(); + // cy.get(".nc-column-edit").should("not.be.visible"); + cy.getActiveMenu(".nc-dropdown-column-operations") + .find(".nc-column-edit") + .click(); // rename column and verify cy.getActiveMenu(".nc-dropdown-edit-column").find('input.nc-column-name-input', { timeout: 3000 }) .should('exist') .clear() .type(updatedColName); - cy.get(".ant-btn-primary:visible").contains("Save").click(); + // cy.get(".ant-btn-primary:visible").contains("Save").click(); + cy.getActiveMenu('.nc-dropdown-edit-column') + .find(".ant-btn-primary:visible") + .contains("Save") + .click(); cy.toastWait("Column updated"); diff --git a/scripts/cypress/integration/common/3b_formula_column.js b/scripts/cypress/integration/common/3b_formula_column.js index 9d6e0a6171..f79ab26b56 100644 --- a/scripts/cypress/integration/common/3b_formula_column.js +++ b/scripts/cypress/integration/common/3b_formula_column.js @@ -57,10 +57,25 @@ export const genTest = (apiType, dbType) => { .should('exist') .clear() .type(columnName); - cy.get(".nc-column-type-input").last().click().type("Formula"); - cy.getActiveSelection('.nc-dropdown-column-type').find('.ant-select-item-option').contains("Formula").click(); - cy.get('textarea.nc-formula-input').click().type(formula, { parseSpecialCharSequences: false }); - cy.get(".ant-btn-primary").contains("Save").should('exist').click(); + // cy.get(".nc-column-type-input").last().click().type("Formula"); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".nc-column-type-input") + .last() + .click() + .type("Formula"); + cy.getActiveSelection('.nc-dropdown-column-type') + .find('.ant-select-item-option') + .contains("Formula") + .click(); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find('textarea.nc-formula-input') + .click() + .type(formula, { parseSpecialCharSequences: false }); + // cy.get(".ant-btn-primary").contains("Save").should('exist').click(); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".ant-btn-primary:visible") + .contains("Save") + .click(); // cy.toastWait(`Column created`); cy.closeTableTab("City"); @@ -82,8 +97,11 @@ export const genTest = (apiType, dbType) => { .trigger("mouseover", { force: true }) .click({ force: true }); - cy.get(".nc-column-edit").click(); - cy.get(".nc-column-edit").should("not.be.visible"); + // cy.get(".nc-column-edit").click(); + // cy.get(".nc-column-edit").should("not.be.visible"); + cy.getActiveMenu(".nc-dropdown-column-operations") + .find(".nc-column-edit") + .click(); cy.getActiveMenu(".nc-dropdown-edit-column").find('input.nc-column-name-input', { timeout: 3000 }) .should('exist') diff --git a/scripts/cypress/integration/common/3c_lookup_column.js b/scripts/cypress/integration/common/3c_lookup_column.js index 2656041826..6db00e01c4 100644 --- a/scripts/cypress/integration/common/3c_lookup_column.js +++ b/scripts/cypress/integration/common/3c_lookup_column.js @@ -48,21 +48,40 @@ export const genTest = (apiType, dbType) => { force: true, }); - cy.getActiveMenu(".nc-dropdown-grid-add-column").find('input.nc-column-name-input', { timeout: 3000 }) + cy.getActiveMenu(".nc-dropdown-grid-add-column") + .find('input.nc-column-name-input') .should('exist') .clear() .type(childCol); - cy.get(".nc-column-type-input").last().click().type("Lookup"); - cy.getActiveSelection('.nc-dropdown-column-type').find('.ant-select-item-option').contains("Lookup").click(); + // cy.get(".nc-column-type-input").last().click().type("Lookup"); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".nc-column-type-input") + .last() + .click() + .type("Lookup"); + cy.getActiveSelection('.nc-dropdown-column-type') + .find('.ant-select-item-option') + .contains("Lookup") + .click(); // Configure Child table & column names fetchParentFromLabel("Child table"); - cy.getActiveSelection('.nc-dropdown-relation-table').find('.ant-select-item-option').contains(childTable).click(); + cy.getActiveSelection('.nc-dropdown-relation-table') + .find('.ant-select-item-option') + .contains(childTable) + .click(); fetchParentFromLabel("Child column"); - cy.getActiveSelection('.nc-dropdown-relation-column').find('.ant-select-item-option').contains(childCol).click(); - - cy.get(".ant-btn-primary").contains("Save").should('exist').click(); + cy.getActiveSelection('.nc-dropdown-relation-column') + .find('.ant-select-item-option') + .contains(childCol) + .click(); + + // cy.get(".ant-btn-primary").contains("Save").should('exist').click(); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".ant-btn-primary:visible") + .contains("Save") + .click(); cy.toastWait(`Column created`); cy.get(`th[data-title="${childCol}"]`).should("exist"); diff --git a/scripts/cypress/integration/common/3d_rollup_column.js b/scripts/cypress/integration/common/3d_rollup_column.js index a3867b008d..7446611c9d 100644 --- a/scripts/cypress/integration/common/3d_rollup_column.js +++ b/scripts/cypress/integration/common/3d_rollup_column.js @@ -54,24 +54,46 @@ export const genTest = (apiType, dbType) => { force: true, }); - cy.getActiveMenu(".nc-dropdown-grid-add-column").find('input.nc-column-name-input', { timeout: 3000 }) + cy.getActiveMenu(".nc-dropdown-grid-add-column") + .find('input.nc-column-name-input') .should('exist') .clear() .type(columnName); - cy.get(".nc-column-type-input").last().click().type("RollUp"); - cy.getActiveSelection('.nc-dropdown-column-type').find('.ant-select-item-option').contains("Rollup").click(); + // cy.get(".nc-column-type-input").last().click().type("RollUp"); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".nc-column-type-input") + .last() + .click() + .type("RollUp") + cy.getActiveSelection('.nc-dropdown-column-type') + .find('.ant-select-item-option') + .contains("Rollup") + .click(); // Configure Child table & column names fetchParentFromLabel("Child table"); - cy.getActiveSelection('.nc-dropdown-relation-table').find('.ant-select-item-option').contains(childTable).click(); + cy.getActiveSelection('.nc-dropdown-relation-table') + .find('.ant-select-item-option') + .contains(childTable) + .click(); fetchParentFromLabel("Child column"); - cy.getActiveSelection('.nc-dropdown-relation-column').find('.ant-select-item-option').contains(childCol).click(); + cy.getActiveSelection('.nc-dropdown-relation-column') + .find('.ant-select-item-option') + .contains(childCol) + .click(); fetchParentFromLabel("Aggregate function"); - cy.getActiveSelection('.nc-dropdown-rollup-function').find('.ant-select-item-option').contains(aggregateFunc).click(); - - cy.get(".ant-btn-primary").contains("Save").should('exist').click(); + cy.getActiveSelection('.nc-dropdown-rollup-function') + .find('.ant-select-item-option') + .contains(aggregateFunc) + .click(); + + // cy.get(".ant-btn-primary").contains("Save").should('exist').click(); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".ant-btn-primary:visible") + .contains("Save") + .click(); cy.toastWait(`Column created`); cy.get(`th[data-title="${columnName}"]`).should("exist"); @@ -85,26 +107,26 @@ export const genTest = (apiType, dbType) => { // routine to edit column // - const editColumnByName = (oldName, newName) => { - // verify if column exists before delete - cy.get(`th:contains(${oldName})`).should("exist"); - - // delete opiton visible on mouse-over - cy.get(`th:contains(${oldName}) .mdi-menu-down`) - .trigger("mouseover") - .click(); - - // edit/ save on pop-up - cy.get(".nc-column-edit").click(); - cy.get(".nc-column-name-input input").clear().type(newName); - cy.get(".nc-col-create-or-edit-card").contains("Save").click(); - - cy.toastWait("Successfully updated alias"); - - // validate if deleted (column shouldnt exist) - cy.get(`th:contains(${oldName})`).should("not.exist"); - cy.get(`th:contains(${newName})`).should("exist"); - }; + // const editColumnByName = (oldName, newName) => { + // // verify if column exists before delete + // cy.get(`th:contains(${oldName})`).should("exist"); + // + // // delete opiton visible on mouse-over + // cy.get(`th:contains(${oldName}) .mdi-menu-down`) + // .trigger("mouseover") + // .click(); + // + // // edit/ save on pop-up + // cy.get(".nc-column-edit").click(); + // cy.get(".nc-column-name-input input").clear().type(newName); + // cy.get(".nc-col-create-or-edit-card").contains("Save").click(); + // + // cy.toastWait("Successfully updated alias"); + // + // // validate if deleted (column shouldnt exist) + // cy.get(`th:contains(${oldName})`).should("not.exist"); + // cy.get(`th:contains(${newName})`).should("exist"); + // }; /////////////////////////////////////////////////// // Test case @@ -134,7 +156,7 @@ export const genTest = (apiType, dbType) => { .contains("2") .should("exist"); - editColumnByName("RollUpCol_1", "RollUpCol_New"); + // editColumnByName("RollUpCol_1", "RollUpCol_New"); deleteColumnByName("RollUpCol_New"); }); }); diff --git a/scripts/cypress/integration/common/3e_duration_column.js b/scripts/cypress/integration/common/3e_duration_column.js index 7aae994389..ce1a4d327d 100644 --- a/scripts/cypress/integration/common/3e_duration_column.js +++ b/scripts/cypress/integration/common/3e_duration_column.js @@ -44,18 +44,34 @@ export const genTest = (apiType, dbType) => { force: true, }); - cy.getActiveMenu(".nc-dropdown-grid-add-column").find('input.nc-column-name-input', { timeout: 3000 }) + cy.getActiveMenu(".nc-dropdown-grid-add-column") + .find('input.nc-column-name-input', { timeout: 3000 }) .should('exist') .clear() .type(columnName); - cy.get(".nc-column-type-input").last().click().type("Duration"); - cy.getActiveSelection('.nc-dropdown-column-type').find('.ant-select-item-option').contains("Duration").click(); + // cy.get(".nc-column-type-input").last().click().type("Duration"); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".nc-column-type-input") + .last() + .click() + .type("Duration") + cy.getActiveSelection('.nc-dropdown-column-type') + .find('.ant-select-item-option') + .contains("Duration") + .click(); // Configure Duration format fetchParentFromLabel("Duration Format"); - cy.getActiveSelection('.nc-dropdown-duration-option').find('.ant-select-item-option').contains(durationFormat).click(); - - cy.get(".ant-btn-primary").contains("Save").should('exist').click(); + cy.getActiveSelection('.nc-dropdown-duration-option') + .find('.ant-select-item-option') + .contains(durationFormat) + .click(); + + // cy.get(".ant-btn-primary").contains("Save").should('exist').click(); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".ant-btn-primary:visible") + .contains("Save") + .click(); cy.toastWait(`Column created`); cy.get(`th[data-title="${columnName}"]`).should("exist"); @@ -75,19 +91,30 @@ export const genTest = (apiType, dbType) => { .trigger("mouseover", { force: true }) .click({ force: true }); - cy.get(".nc-column-edit").click(); - cy.get(".nc-column-edit").should("not.be.visible"); + // cy.get(".nc-column-edit").click(); + // cy.get(".nc-column-edit").should("not.be.visible"); + cy.getActiveMenu(".nc-dropdown-column-operations") + .find(".nc-column-edit") + .click(); // rename column and verify - cy.getActiveMenu(".nc-dropdown-column-operations").find('input.nc-column-name-input', { timeout: 3000 }) + cy.getActiveMenu(".nc-dropdown-edit-column") + .find('input.nc-column-name-input', { timeout: 3000 }) .should('exist') .clear() .type(newName); // Configure Duration format fetchParentFromLabel("Duration Format"); - cy.getActiveSelection('.nc-dropdown-duration-option').find('.ant-select-item-option').contains(newDurationFormat).click(); - - cy.get(".ant-btn-primary:visible").contains("Save").click(); + cy.getActiveSelection('.nc-dropdown-duration-option') + .find('.ant-select-item-option') + .contains(newDurationFormat) + .click(); + + // cy.get(".ant-btn-primary:visible").contains("Save").click(); + cy.getActiveMenu('.nc-dropdown-edit-column') + .find(".ant-btn-primary:visible") + .contains("Save") + .click(); cy.toastWait("Column updated"); diff --git a/scripts/cypress/integration/common/3f_link_to_another_record.js b/scripts/cypress/integration/common/3f_link_to_another_record.js index dc25b2c8e2..0a8ed1f7a1 100644 --- a/scripts/cypress/integration/common/3f_link_to_another_record.js +++ b/scripts/cypress/integration/common/3f_link_to_another_record.js @@ -37,12 +37,18 @@ export const genTest = (apiType, dbType) => { .type(columnName); // Column type - cy.get(".nc-column-type-input").last() + // cy.get(".nc-column-type-input").last() + // .click() + // .type("Link"); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".nc-column-type-input") + .last() .click() - .type("Link"); + .type("Link") cy.getActiveSelection('.nc-dropdown-column-type') .find('.ant-select-item-option') - .contains("LinkToAnotherRecord").click(); + .contains("LinkToAnotherRecord") + .click(); // relation type (hm/ mm) cy.get('.nc-ltar-relation-type') @@ -62,9 +68,13 @@ export const genTest = (apiType, dbType) => { .click(); // Save - cy.get(".ant-btn-primary") + // cy.get(".ant-btn-primary") + // .contains("Save") + // .should('exist') + // .click(); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".ant-btn-primary:visible") .contains("Save") - .should('exist') .click(); // Toast diff --git a/scripts/cypress/support/commands.js b/scripts/cypress/support/commands.js index db8493087f..ee7ba6bb35 100644 --- a/scripts/cypress/support/commands.js +++ b/scripts/cypress/support/commands.js @@ -352,26 +352,26 @@ Cypress.Commands.add('renameTable', (oldName, newName) => { }); -Cypress.Commands.add('createColumn', (table, columnName) => { - cy.get('.nc-project-tree') - .find('.v-list-item__title:contains(Tables)') - .should('exist') - .first() - .click(); - cy.get('.nc-project-tree') - .contains(table) - .should('exist') - .first() - .click({ force: true }); - cy.get(`.project-tab:contains(${table}):visible`).should('exist'); - cy.get('.v-window-item--active .nc-grid tr > th:last button').click({ - force: true, - }); - cy.get('.nc-column-name-input input').clear().type(columnName); - cy.getActiveMenu('Menu_CreateColumn'); - cy.get('.nc-col-create-or-edit-card').contains('Save').click(); - cy.get('th:contains(new_column)').should('exist'); -}); +// Cypress.Commands.add('createColumn', (table, columnName) => { +// cy.get('.nc-project-tree') +// .find('.v-list-item__title:contains(Tables)') +// .should('exist') +// .first() +// .click(); +// cy.get('.nc-project-tree') +// .contains(table) +// .should('exist') +// .first() +// .click({ force: true }); +// cy.get(`.project-tab:contains(${table}):visible`).should('exist'); +// cy.get('.v-window-item--active .nc-grid tr > th:last button').click({ +// force: true, +// }); +// cy.get('.nc-column-name-input input').clear().type(columnName); +// cy.getActiveMenu('Menu_CreateColumn'); +// cy.get('.nc-col-create-or-edit-card').contains('Save').click(); +// cy.get('th:contains(new_column)').should('exist'); +// }); Cypress.Commands.add('toastWait', (msg) => { cy.get('.ant-message-notice-content:visible', { timeout: 60000 }).contains(msg).should('exist'); diff --git a/scripts/cypress/support/page_objects/mainPage.js b/scripts/cypress/support/page_objects/mainPage.js index 1771009ab8..8be004e673 100644 --- a/scripts/cypress/support/page_objects/mainPage.js +++ b/scripts/cypress/support/page_objects/mainPage.js @@ -183,11 +183,13 @@ export class _mainPage { force: true, }); - cy.getActiveMenu(".nc-dropdown-grid-add-column").find('input.nc-column-name-input', { timeout: 3000 }) + cy.getActiveMenu(".nc-dropdown-grid-add-column") + .find('input.nc-column-name-input') .should('exist') .clear() .type(colName); - cy.get(".ant-btn-primary").contains("Save").should('exist').click(); + cy.getActiveMenu(".nc-dropdown-grid-add-column") + .find(".ant-btn-primary").contains("Save").should('exist').click(); cy.toastWait(`Column created`); cy.get(`th[data-title="${colName}"]`).should("exist"); }; @@ -197,15 +199,24 @@ export class _mainPage { force: true, }); - cy.getActiveMenu(".nc-dropdown-grid-add-column").find('input.nc-column-name-input', { timeout: 3000 }) + cy.getActiveMenu(".nc-dropdown-grid-add-column") + .find('input.nc-column-name-input') .should('exist') .clear() .type(colName); // change column type and verify - cy.get(".nc-column-type-input").last().click(); + // cy.get(".nc-column-type-input").last().click(); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".nc-column-type-input") + .last() + .click() cy.getActiveSelection('.nc-dropdown-column-type').find('.ant-select-item-option').contains(colType).click(); - cy.get(".ant-btn-primary:visible").contains("Save").click(); + // cy.get(".ant-btn-primary:visible").contains("Save").click(); + cy.getActiveMenu('.nc-dropdown-grid-add-column') + .find(".ant-btn-primary:visible") + .contains("Save") + .click(); cy.toastWait(`Column created`); cy.get(`th[data-title="${colName}"]`).should("exist");