diff --git a/scripts/cypress/integration/common/00_pre_configurations.js b/scripts/cypress/integration/common/00_pre_configurations.js index f0a45085df..506a16b7d1 100644 --- a/scripts/cypress/integration/common/00_pre_configurations.js +++ b/scripts/cypress/integration/common/00_pre_configurations.js @@ -164,7 +164,6 @@ export const genTest = (apiType, dbType) => { it("Admin SignUp", () => { cy.task("log", "This will be output to the terminal"); - cy.saveLocalStorage(); loginPage.signUp(roles.owner.credentials); }); @@ -250,6 +249,15 @@ export const genTest = (apiType, dbType) => { else { cy_createProjectBlock(proj, apiType, dbType); } + + // kludge: wait for page load to finish + cy.wait(2000); + // close team & auth tab + cy.get('button.ant-tabs-tab-remove').should('exist').click(); + cy.wait(1000); + + // first instance of updating local storage information + cy.saveLocalStorage(); }); }; diff --git a/scripts/cypress/integration/common/4a_table_view_grid_gallery_form.js b/scripts/cypress/integration/common/4a_table_view_grid_gallery_form.js index 361dc23423..152ec61308 100644 --- a/scripts/cypress/integration/common/4a_table_view_grid_gallery_form.js +++ b/scripts/cypress/integration/common/4a_table_view_grid_gallery_form.js @@ -15,25 +15,24 @@ export const genTest = (apiType, dbType) => { // before(() => { cy.restoreLocalStorage(); - cy.wait(1000); - - mainPage.tabReset(); // open a table to work on views // cy.openTableTab("Country", 25); - - // toggle right navbar (open) - // cy.get('.nc-toggle-right-navbar').should('exist').click(); }); beforeEach(() => { cy.restoreLocalStorage(); - cy.wait(1000); + }); + + afterEach(() => { + cy.saveLocalStorage(); }); after(() => { + cy.restoreLocalStorage(); cy.closeTableTab("Country"); + cy.saveLocalStorage(); }); // Common routine to create/edit/delete GRID & GALLERY view @@ -48,9 +47,6 @@ export const genTest = (apiType, dbType) => { cy.getActiveModal(".nc-modal-view-create").find(".ant-btn-primary").click(); cy.toastWait("View created successfully"); - // kludge: right navbar closes abruptly. force it open again - // window.localStorage.setItem('nc-right-sidebar', '{"isOpen":true,"hasSidebar":true}') - // validate if view was created && contains default name 'Country1' cy.get(`.nc-${viewType}-view-item`) .contains(`${capitalizeFirstLetter(viewType)}-1`) @@ -67,9 +63,6 @@ export const genTest = (apiType, dbType) => { .type(`${viewType}View-1{enter}`); cy.toastWait("View renamed successfully"); - // kludge: right navbar closes abruptly. force it open again - // window.localStorage.setItem('nc-right-sidebar', '{"isOpen":true,"hasSidebar":true}') - // validate cy.get(`.nc-${viewType}-view-item`) .contains(`${viewType}View-1`) @@ -86,9 +79,6 @@ export const genTest = (apiType, dbType) => { cy.getActiveModal(".nc-modal-view-delete").find('.ant-btn-dangerous').click(); cy.toastWait("View deleted successfully"); - // kludge: right navbar closes abruptly. force it open again - // window.localStorage.setItem('nc-right-sidebar', '{"isOpen":true,"hasSidebar":true}') - // confirm if the number of veiw entries is reduced by 1 cy.get(".nc-view-item").its("length").should("eq", 1); }); diff --git a/scripts/cypress/integration/common/4b_table_view_share.js b/scripts/cypress/integration/common/4b_table_view_share.js index 9d3deb9d85..429e468257 100644 --- a/scripts/cypress/integration/common/4b_table_view_share.js +++ b/scripts/cypress/integration/common/4b_table_view_share.js @@ -37,11 +37,24 @@ export const genTest = (apiType, dbType) => { // before(() => { cy.restoreLocalStorage(); - cy.wait(1000); - - mainPage.tabReset(); cy.openTableTab("City", 25); + }); + + beforeEach(() => { + cy.restoreLocalStorage(); + }); + + afterEach(() => { + cy.saveLocalStorage(); + }); + + after(() => { + cy.restoreLocalStorage(); + cy.closeTableTab("City"); + cy.saveLocalStorage(); + }); + it("Generate link with password", () => { // store base URL- to re-visit and delete form view later cy.url().then((url) => { storedURL = url; @@ -51,12 +64,6 @@ export const genTest = (apiType, dbType) => { cy.signOut(); }); - beforeEach(() => { - }); - - afterEach(() => { - }); - it("Share view with incorrect password", () => { cy.visit(linkText, { baseUrl: null, @@ -99,24 +106,11 @@ export const genTest = (apiType, dbType) => { it("Delete view", () => { loginPage.loginAndOpenProject(apiType, dbType); cy.openTableTab("City", 25); - cy.wait(500); - mainPage.toggleRightSidebar(); - cy.wait(500); - - cy.saveLocalStorage(); - cy.wait(1000); // wait for page load to complete cy.get(".nc-grid-row").should("have.length", 25); mainPage.deleteCreatedViews(); }); - - after(() => { - cy.restoreLocalStorage(); - cy.wait(500); - - cy.closeTableTab("City"); - }); }); }; diff --git a/scripts/cypress/integration/common/4c_form_view_detailed.js b/scripts/cypress/integration/common/4c_form_view_detailed.js index d56ccc0655..b1722628b5 100644 --- a/scripts/cypress/integration/common/4c_form_view_detailed.js +++ b/scripts/cypress/integration/common/4c_form_view_detailed.js @@ -58,37 +58,27 @@ export const genTest = (apiType, dbType) => { // Run once before test- create project (rest/graphql) // before(() => { - mainPage.tabReset(); + // standalone test // loginPage.loginAndOpenProject(apiType, dbType); - // kludge: wait for page load to finish - cy.wait(2000); - // close team & auth tab - cy.get('button.ant-tabs-tab-remove').should('exist').click(); - cy.wait(1000); - // open a table to work on views // + cy.restoreLocalStorage(); cy.openTableTab("Country", 25); - mainPage.toggleRightSidebar(); - - cy.saveLocalStorage(); - cy.wait(500); }); beforeEach(() => { cy.restoreLocalStorage(); - cy.wait(500); - - // fix me! - window.localStorage.setItem('nc-right-sidebar', '{"isOpen":true,"hasSidebar":true}') }); afterEach(() => { + cy.saveLocalStorage(); }); after(() => { + cy.restoreLocalStorage(); cy.closeTableTab("Country"); + cy.saveLocalStorage(); }); // Common routine to create/edit/delete GRID & GALLERY view @@ -96,6 +86,7 @@ export const genTest = (apiType, dbType) => { // const viewTest = (viewType) => { it(`Create ${viewType} view`, () => { + // click on 'Grid/Gallery' button on Views bar cy.get(`.nc-create-${viewType}-view`).click(); @@ -385,35 +376,9 @@ export const genTest = (apiType, dbType) => { // validate if form has appeared again validateFormHeader(); - - // // verify URL & copy it for subsequent test - // cy.url().should("contain", `Country/Form-1`); - // cy.url().then((url) => { - // cy.log(url); - // formViewURL = url; - // }); - // - // cy.wait(300); }); - // it.skip(`Validate ${viewType}: URL validation after re-access`, () => { - // // visit URL - // cy.log(formViewURL); - // - // cy.visit(formViewURL, { - // baseUrl: null, - // }); - // - // // New form appeared? Header & description should exist - // validateFormHeader(); - // }); - it(`Delete ${viewType} view`, () => { - // cy.visit("/"); - // cy.wait(5000); - // projectsPage.openConfiguredProject(apiType, dbType); - // cy.openTableTab("Country", 25); - // number of view entries should be 2 before we delete cy.get(".nc-view-item").its("length").should("eq", 2); diff --git a/scripts/cypress/integration/common/4d_table_view_grid_locked.js b/scripts/cypress/integration/common/4d_table_view_grid_locked.js index 4ffee50b57..eb7a642587 100644 --- a/scripts/cypress/integration/common/4d_table_view_grid_locked.js +++ b/scripts/cypress/integration/common/4d_table_view_grid_locked.js @@ -9,24 +9,21 @@ export const genTest = (apiType, dbType) => { // before(() => { cy.restoreLocalStorage(); - cy.wait(500); - - mainPage.tabReset(); - - // open a table to work on views - // cy.openTableTab("Country", 25); }); beforeEach(() => { cy.restoreLocalStorage(); - cy.wait(500); + }); + + afterEach(() => { + cy.saveLocalStorage(); }); after(() => { cy.restoreLocalStorage(); - cy.wait(500) cy.closeTableTab("Country"); + cy.saveLocalStorage(); }); const lockViewTest = (enabled) => { diff --git a/scripts/cypress/integration/common/4e_form_view_share.js b/scripts/cypress/integration/common/4e_form_view_share.js index 34695a53e2..4c63a09bb0 100644 --- a/scripts/cypress/integration/common/4e_form_view_share.js +++ b/scripts/cypress/integration/common/4e_form_view_share.js @@ -14,30 +14,22 @@ export const genTest = (apiType, dbType) => { // before(() => { // loginPage.loginAndOpenProject(apiType, dbType); - // cy.openTableTab("City", 25); - // cy.wait(500); - // mainPage.toggleRightSidebar(); - // cy.wait(500); - // cy.saveLocalStorage(); - // cy.wait(500); - cy.restoreLocalStorage(); - cy.wait(500); - - mainPage.tabReset(); - // open a table to work on views - // - cy.openTableTab("City", 25); }); beforeEach(() => { + cy.restoreLocalStorage(); + }); + + afterEach(() => { + cy.saveLocalStorage(); }); after(() => { cy.restoreLocalStorage(); - cy.wait(500); cy.closeTableTab("City"); + cy.saveLocalStorage(); }); // Common routine to create/edit/delete GRID & GALLERY view @@ -46,9 +38,6 @@ export const genTest = (apiType, dbType) => { const viewTest = (viewType) => { it(`Create ${viewType} view`, () => {0 - cy.restoreLocalStorage(); - cy.wait(500); - // click on create grid view button cy.get(`.nc-create-${viewType}-view`).click(); @@ -97,9 +86,6 @@ export const genTest = (apiType, dbType) => { it(`Share form view`, () => { - cy.restoreLocalStorage(); - cy.wait(500); - cy.get(`.nc-view-item.nc-${viewType}-view-item`) .contains("Form-1") .click(); @@ -198,11 +184,6 @@ export const genTest = (apiType, dbType) => { // go back to base page loginPage.loginAndOpenProject(apiType, dbType); cy.openTableTab("City", 25); - cy.wait(500); - mainPage.toggleRightSidebar(); - cy.wait(500); - cy.saveLocalStorage(); - cy.wait(500); // number of view entries should be 2 before we delete cy.get(".nc-view-item").its("length").should("eq", 2); diff --git a/scripts/cypress/integration/common/4f_grid_view_share.js b/scripts/cypress/integration/common/4f_grid_view_share.js index 4f1b666d22..ee18aa3a13 100644 --- a/scripts/cypress/integration/common/4f_grid_view_share.js +++ b/scripts/cypress/integration/common/4f_grid_view_share.js @@ -42,33 +42,23 @@ export const genTest = (apiType, dbType) => { // before(() => { cy.restoreLocalStorage(); - cy.wait(500); - - mainPage.tabReset(); cy.openTableTab("Address", 25); - - // loginPage.loginAndOpenProject(apiType, dbType); - // - // // open a table to work on views - // // - // cy.openTableTab("Address", 25); - // mainPage.toggleRightSidebar(); - // // - // cy.saveLocalStorage(); }); beforeEach(() => { + cy.restoreLocalStorage(); }); afterEach(() => { + cy.saveLocalStorage(); }); after(() => { // close table // mainPage.deleteCreatedViews() cy.restoreLocalStorage(); - cy.wait(500); cy.closeTableTab("Address"); + cy.saveLocalStorage(); }); // Common routine to create/edit/delete GRID & GALLERY view @@ -77,9 +67,6 @@ export const genTest = (apiType, dbType) => { const viewTest = (viewType) => { it(`Create ${viewType.toUpperCase()} view`, () => { - cy.restoreLocalStorage(); - cy.wait(500); - // create a normal public view cy.get(`.nc-create-${viewType}-view`).click(); cy.getActiveModal(".nc-modal-view-create").find("button:contains(Submit)").click(); @@ -93,9 +80,6 @@ export const genTest = (apiType, dbType) => { it(`Share ${viewType.toUpperCase()} hide, sort, filter & verify`, () => { - cy.restoreLocalStorage(); - cy.wait(500); - cy.get(`.nc-view-item.nc-${viewType}-view-item`) .contains("Grid-1") .click(); @@ -108,9 +92,6 @@ export const genTest = (apiType, dbType) => { it(`Share GRID view : ensure we have only one link even if shared multiple times`, () => { - cy.restoreLocalStorage(); - cy.wait(500); - // generate view link multiple times generateViewLink("combined"); generateViewLink("combined"); @@ -364,11 +345,6 @@ export const genTest = (apiType, dbType) => { loginPage.loginAndOpenProject(apiType, dbType); cy.openTableTab("Address", 25); - mainPage.toggleRightSidebar(); - cy.wait(500); - cy.saveLocalStorage(); - cy.wait(500); - // number of view entries should be 2 before we delete cy.get(".nc-view-item").its("length").should("eq", 2); @@ -387,9 +363,7 @@ export const genTest = (apiType, dbType) => { describe(`${apiType.toUpperCase()} api - Grid view/ row-column update verification`, () => { before(() => { - cy.restoreLocalStorage(); - cy.wait(500); // Address table has belongs to, has many & many-to-many cy.openTableTab("Country", 25); @@ -401,47 +375,21 @@ export const genTest = (apiType, dbType) => { }); }); - after(() => { - // close table - // cy.visit(storedURL, { - // baseUrl: null, - // }); - // cy.wait(5000); + beforeEach(() => { + cy.restoreLocalStorage(); + }); - loginPage.loginAndOpenProject(apiType, dbType); - cy.openTableTab("Country", 25) - cy.wait(500); - mainPage.toggleRightSidebar(); - cy.wait(500); + afterEach(() => { cy.saveLocalStorage(); - cy.wait(500); - - // delete row - mainPage.getPagination(5).click(); - // kludge: flicker on load - cy.wait(3000) - - // wait for page rendering to complete - cy.get(".nc-grid-row").should("have.length", 10); - mainPage.getCell("Country", 10).rightclick(); - cy.getActiveMenu(".nc-dropdown-grid-context-menu") - .find('.ant-dropdown-menu-item:contains("Delete Row")') - .first() - .click(); - - // delete column - mainPage.deleteColumn("dummy"); - mainPage.deleteCreatedViews(); + }); - // close table + after(() => { + cy.restoreLocalStorage(); cy.closeTableTab("Country"); + cy.saveLocalStorage(); }); it(`Generate default Shared GRID view URL`, () => { - - cy.restoreLocalStorage(); - cy.wait(500); - // add row cy.get(".nc-add-new-row-btn").click(); cy.get(".nc-expand-col-Country").find(".nc-cell > input") @@ -488,6 +436,28 @@ export const genTest = (apiType, dbType) => { // verify column headers cy.get('[data-title="dummy"]').should("exist"); }); + + it(`Clean up`, () => { + loginPage.loginAndOpenProject(apiType, dbType); + cy.openTableTab("Country", 25) + + // delete row + mainPage.getPagination(5).click(); + // kludge: flicker on load + cy.wait(3000) + + // wait for page rendering to complete + cy.get(".nc-grid-row").should("have.length", 10); + mainPage.getCell("Country", 10).rightclick(); + cy.getActiveMenu(".nc-dropdown-grid-context-menu") + .find('.ant-dropdown-menu-item:contains("Delete Row")') + .first() + .click(); + + // delete column + mainPage.deleteColumn("dummy"); + mainPage.deleteCreatedViews(); + }); }); }; diff --git a/scripts/cypress/support/commands.js b/scripts/cypress/support/commands.js index 2057b8b043..01b834a8a4 100644 --- a/scripts/cypress/support/commands.js +++ b/scripts/cypress/support/commands.js @@ -235,39 +235,19 @@ let LOCAL_STORAGE_MEMORY = {}; let LOCAL_STORAGE_MEMORY_v2 = {}; Cypress.Commands.add('saveLocalStorage', (name) => { - if (name) { - cy.task('log', `[saveLocalStorage] ${name}`); - LOCAL_STORAGE_MEMORY_v2[name] = {}; - Object.keys(localStorage).forEach((key) => { - LOCAL_STORAGE_MEMORY_v2[name][key] = localStorage[key]; - }); - return; - } - LOCAL_STORAGE_MEMORY = {}; Object.keys(localStorage).forEach((key) => { LOCAL_STORAGE_MEMORY[key] = localStorage[key]; }); cy.printLocalStorage(); - }); Cypress.Commands.add('restoreLocalStorage', (name) => { - if (name) { - cy.task('log', `[restoreLocalStorage] ${name}`); - Object.keys(LOCAL_STORAGE_MEMORY_v2[name]).forEach((key) => { - localStorage.setItem(key, LOCAL_STORAGE_MEMORY_v2[name][key]); - }); - return; - } - - cy.deleteLocalStorage().then(() => { Object.keys(LOCAL_STORAGE_MEMORY).forEach((key) => { localStorage.setItem(key, LOCAL_STORAGE_MEMORY[key]); }); cy.printLocalStorage(); - }); }); Cypress.Commands.add('deleteLocalStorage', () => {