diff --git a/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/GitSyncedApps_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/GitSyncedApps_spec.js index 4d6619b4b7..6ada886547 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/GitSyncedApps_spec.js +++ b/app/client/cypress/e2e/Regression/ClientSide/Git/GitSync/GitSyncedApps_spec.js @@ -22,6 +22,11 @@ import { homePage, gitSync, dataSources, + table, + draggableWidgets, + locators, + apiPage, + propPane, } from "../../../../../support/Objects/ObjectsCore"; import PageList from "../../../../../support/Pages/PageList"; @@ -35,13 +40,6 @@ let datasourceName; let repoName; describe("Git sync apps", function () { - before(() => { - // homePage.NavigateToHome(); - // cy.createWorkspace(); - // cy.wait("@createWorkspace").then((interception) => { - // const newWorkspaceName = interception.response.body.data.name; - // cy.CreateAppForWorkspace(newWorkspaceName, "gitSyncApp"); - }); it("1. Generate postgreSQL crud page , connect to git, clone the page, rename page with special character in it", () => { homePage.NavigateToHome(); homePage.CreateNewApplication(); @@ -102,8 +100,9 @@ describe("Git sync apps", function () { cy.get("@gitRepoName").then((repName) => { repoName = repName; }); - - cy.wait(3000); + table.ReadTableRowColumnData(0, 1).then((cellData) => { + expect(cellData).to.be.equal("New Config"); + }); // rename page to crud_page entityExplorer.RenameEntityFromExplorer("Page1", pageName); EditorNavigation.SelectEntityByName(pageName, EntityType.Page); @@ -118,33 +117,22 @@ describe("Git sync apps", function () { "response.body.responseMeta.status", 201, ); + table.ReadTableRowColumnData(0, 1).then((cellData) => { + expect(cellData).to.be.equal("New Config"); + }); }); it("2. Create api queries from api pane and cURL import , bind it to widget and clone page from page settings", () => { cy.fixture("datasources").then((datasourceFormData) => { cy.Createpage(newPage); cy.get(`.t--entity-item:contains(${newPage})`).click(); - cy.wait(1000); + cy.wait("@getPage"); // create a get api call - cy.CreateAPI("get_data"); - // creating get request using echo - cy.get(apiwidget.resourceUrl) - .first() - .click({ force: true }) - .type(datasourceFormData["echoApiUrl"], { - parseSpecialCharSequences: false, - }); - //.type("{esc}}"); - cy.wait(5000); - cy.get(apiwidget.headerKey).type("info"); - cy.xpath("//span[text()='Key']").click(); - // entering the data in header - cy.get(apiwidget.headerValue).type("This is a test", { - parseSpecialCharSequences: false, - }); - cy.wait(2000); - cy.SaveAndRunAPI(); - cy.ResponseStatusCheck("200"); + + apiPage.CreateAndFillApi(datasourceFormData["echoApiUrl"], "get_data"); + apiPage.EnterHeader("info", "This is a test"); + apiPage.RunAPI(); + apiPage.ResponseStatusCheck("200 OK"); // curl import dataSources.NavigateToDSCreateNew(); cy.get(ApiEditor.curlImage).click({ force: true }); @@ -158,7 +146,7 @@ describe("Git sync apps", function () { ); cy.importCurl(); cy.RunAPI(); - cy.ResponseStatusCheck("200"); + apiPage.ResponseStatusCheck("200 OK"); cy.get("@curlImport").then((response) => { cy.expect(response.response.body.responseMeta.success).to.eq(true); cy.get(apiwidget.ApiName) @@ -178,15 +166,13 @@ describe("Git sync apps", function () { .click({ force: true }) .type("{{Api1.data.body.name}}", { parseSpecialCharSequences: false }); cy.dragAndDropToCanvas("inputwidgetv2", { x: 300, y: 500 }); - cy.get(".t--widget-inputwidgetv2").should("exist"); - cy.EnableAllCodeEditors(); - cy.get(`.t--property-control-defaultvalue ${dynamicInputLocators.input}`) - .last() - .click({ force: true }) - .type("{{get_data.data.headers.Info}}", { - parseSpecialCharSequences: false, - }); - cy.wait(2000); + propPane.UpdatePropertyFieldValue( + "Default value", + "{{get_data.data.headers.Info}}", + ); + agHelper.WaitUntilToastDisappear( + "will be executed automatically on page load", + ); // clone the page from page settings cy.get(`.t--entity-item:contains(${newPage})`).within(() => { cy.get(".t--context-menu").click({ force: true }); @@ -204,7 +190,6 @@ describe("Git sync apps", function () { it("3. Commit and push changes, validate data binding on all pages in edit and deploy mode on master", () => { // verfiy data binding on all pages in edit mode - cy.wait(2000); cy.get(".t--draggable-inputwidgetv2").should("be.visible"); cy.get(".t--draggable-inputwidgetv2") .first() @@ -240,7 +225,6 @@ describe("Git sync apps", function () { }); // commit and push the changes gitSync.CommitAndPush(true); - cy.wait(2000); // verify data binding on all pages in deploy mode cy.latestDeployPreview(); cy.get(".t--page-switch-tab") @@ -276,6 +260,10 @@ describe("Git sync apps", function () { .last() .invoke("val") .should("be.oneOf", ["morpheus", "This is a test"]); + agHelper.AssertElementLength( + locators._widgetInDeployed(draggableWidgets.INPUT_V2), + 2, + ); deployMode.NavigateBacktoEditor(); }); @@ -285,10 +273,10 @@ describe("Git sync apps", function () { cy.get("@gitbranchName").then((branName) => { tempBranch = branName; }); - cy.wait(1000); // create jsObject and rename it + EditorNavigation.SelectEntityByName(`${newPage} Copy`, EntityType.Page); + jsEditor.CreateJSObject('return "Success";'); - cy.wait(2000); // create postgres select query dataSources.CreateQueryForDS( datasourceName, @@ -299,9 +287,7 @@ describe("Git sync apps", function () { // create a new page cy.CheckAndUnfoldEntityItem("Pages"); cy.Createpage("Child_Page"); - cy.wait(1000); EditorNavigation.SelectEntityByName(`${newPage} Copy`, EntityType.Page); - cy.wait(2000); // adding wait for query to load EditorNavigation.SelectEntityByName("get_users", EntityType.Query); agHelper.ActionContextMenuWithInPane({ action: "Move to page", @@ -309,9 +295,7 @@ describe("Git sync apps", function () { toastToValidate: "moved to page", }); cy.runQuery(); - cy.wait(2000); EditorNavigation.SelectEntityByName(`${newPage} Copy`, EntityType.Page); - cy.wait(2000); EditorNavigation.SelectEntityByName("JSObject1", EntityType.JSObject); entityExplorer.ActionContextMenuByEntityName({ entityNameinLeftSidebar: "JSObject1", @@ -319,7 +303,6 @@ describe("Git sync apps", function () { subAction: "Child_Page", toastToValidate: "moved to page", }); - cy.wait(2000); PageLeftPane.switchSegment(PagePaneSegment.Widgets); cy.get(explorer.addWidget).click({ force: true }); // bind input widgets to the jsObject and query response @@ -339,7 +322,6 @@ describe("Git sync apps", function () { .type("{{get_users.data[0].name}}", { parseSpecialCharSequences: false, }); - cy.wait(2000); }); it("5. Commit and push changes, validate data binding on all pages in edit and deploy mode on tempBranch", () => { @@ -347,12 +329,9 @@ describe("Git sync apps", function () { cy.get(homePageLocators.publishButton).click(); cy.get(gitSyncLocators.commitCommentInput).type("Initial Commit"); cy.get(gitSyncLocators.commitButton).click(); - cy.wait(8000); cy.get(gitSyncLocators.closeGitSyncModal).click(); // verfiy data binding on all pages in deploy mode - cy.wait(4000); cy.latestDeployPreview(); - cy.wait(2000); cy.get(".bp3-input").should("be.visible"); cy.get(".bp3-input") .first() @@ -375,7 +354,6 @@ describe("Git sync apps", function () { expect(cellData).to.be.equal("New Config"); }); cy.get(".t--page-switch-tab").contains(`${newPage}`).click({ force: true }); - cy.wait(2000); cy.get(".bp3-input") .first() .invoke("val") @@ -387,7 +365,6 @@ describe("Git sync apps", function () { cy.get(".t--page-switch-tab") .contains(`${newPage} Copy`) .click({ force: true }); - cy.wait(2000); cy.get(".bp3-input") .first() .invoke("val") @@ -397,7 +374,6 @@ describe("Git sync apps", function () { .invoke("val") .should("be.oneOf", ["morpheus", "This is a test"]); cy.get(commonlocators.backToEditor).click(); - cy.wait(2000); // verfiy data binding on all pages in edit mode /* cy.get(".t--draggable-inputwidgetv2").first().find(".bp3-input").should("have.value", "morpheus"); cy.get(".t--draggable-inputwidgetv2") @@ -442,7 +418,6 @@ describe("Git sync apps", function () { it("6. Switch to master and verify no uncommitted changes should be shown on master", () => { cy.switchGitBranch("master"); - cy.wait(2000); // verify commit input box is disabled cy.get(homePageLocators.publishButton).click(); cy.get(gitSyncLocators.commitCommentInput) @@ -453,8 +428,6 @@ describe("Git sync apps", function () { it("7. Switch to tempBranch , Clone the Child_Page, change it's visiblity to hidden and deploy, merge to master", () => { cy.switchGitBranch(tempBranch); - cy.wait(2000); - // clone the Child_Page EditorNavigation.SelectEntityByName("Child_Page", EntityType.Page); PageList.ClonePage("Child_Page"); @@ -470,12 +443,9 @@ describe("Git sync apps", function () { cy.get(homePageLocators.publishButton).click(); cy.get(gitSyncLocators.commitCommentInput).type("Initial Commit"); cy.get(gitSyncLocators.commitButton).click(); - cy.wait(8000); cy.get(gitSyncLocators.closeGitSyncModal).click(); - cy.wait(2000); cy.merge(mainBranch); cy.get(gitSyncLocators.closeGitSyncModal).click(); - cy.wait(2000); cy.latestDeployPreview(); // verify page is hidden on deploy mode agHelper.AssertContains("Child_Page Copy", "not.exist"); @@ -484,7 +454,6 @@ describe("Git sync apps", function () { it("8. Verify Page visiblity on master in edit and deploy mode", () => { cy.switchGitBranch(mainBranch); - cy.wait(2000); cy.latestDeployPreview(); agHelper.AssertContains("Child_Page Copy", "not.exist"); deployMode.NavigateBacktoEditor(); @@ -498,9 +467,7 @@ describe("Git sync apps", function () { cy.get(homePageLocators.publishButton).click(); cy.get(gitSyncLocators.commitCommentInput).type("Initial Commit"); cy.get(gitSyncLocators.commitButton).click(); - cy.wait(8000); cy.get(gitSyncLocators.closeGitSyncModal).click(); - cy.wait(2000); cy.merge(mainBranch); cy.get(gitSyncLocators.closeGitSyncModal).click(); // verify Child_Page is not on master @@ -520,7 +487,6 @@ describe("Git sync apps", function () { cy.get(".t--import-json-card").next().click(); // import application from git cy.importAppFromGit(repoName); - cy.wait(2000); // verify page order remains same as in orignal app cy.CheckAndUnfoldEntityItem("Pages"); cy.get(".t--entity-item").eq(1).contains("crudpage_1");