test: Script updates for flaky tests (#16355)
This commit is contained in:
parent
b0e7c2e60d
commit
4bf0827763
|
|
@ -246,12 +246,12 @@ describe("AForce - Community Issues page validations", function() {
|
||||||
|
|
||||||
//Two filters - AND
|
//Two filters - AND
|
||||||
table.OpenNFilterTable("Votes", "greater than", "2");
|
table.OpenNFilterTable("Votes", "greater than", "2");
|
||||||
table.ReadTableRowColumnData(0, 1).then(($cellData) => {
|
table.ReadTableRowColumnData(0, 1, 3000).then(($cellData) => {
|
||||||
expect($cellData).to.eq("Combine queries from different datasources");
|
expect($cellData).to.eq("Combine queries from different datasources");
|
||||||
});
|
});
|
||||||
|
|
||||||
table.OpenNFilterTable("Title", "contains", "button", "AND", 1);
|
table.OpenNFilterTable("Title", "contains", "button", "AND", 1);
|
||||||
table.ReadTableRowColumnData(0, 1).then(($cellData) => {
|
table.ReadTableRowColumnData(0, 1, 3000).then(($cellData) => {
|
||||||
expect($cellData).to.eq(
|
expect($cellData).to.eq(
|
||||||
"Change the video in the video player with a button click",
|
"Change the video in the video player with a button click",
|
||||||
);
|
);
|
||||||
|
|
@ -297,7 +297,7 @@ describe("AForce - Community Issues page validations", function() {
|
||||||
table.SearchTable("Suggestion", 2);
|
table.SearchTable("Suggestion", 2);
|
||||||
table.WaitUntilTableLoad();
|
table.WaitUntilTableLoad();
|
||||||
|
|
||||||
table.ReadTableRowColumnData(0, 0, 1000).then((cellData) => {
|
table.ReadTableRowColumnData(0, 0, 4000).then((cellData) => {
|
||||||
expect(cellData).to.be.equal("Suggestion");
|
expect(cellData).to.be.equal("Suggestion");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,15 +68,15 @@ describe("Validate basic binding of Input widget to Input widget", () => {
|
||||||
expect($selectedValue).to.eq("#1");
|
expect($selectedValue).to.eq("#1");
|
||||||
});
|
});
|
||||||
|
|
||||||
table.SelectTableRow(2); //Deselecting here!
|
table.SelectTableRow(2, 0, false); //Deselecting here!
|
||||||
agHelper.ReadSelectedDropDownValue().then(($selectedValue) => {
|
agHelper.ReadSelectedDropDownValue().then(($selectedValue) => {
|
||||||
expect($selectedValue).to.eq("Select option");
|
expect($selectedValue).to.eq("Select option");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("3. Verify Selecting the already selected row deselects it", () => {
|
it("3. Verify Selecting the already selected row deselects it", () => {
|
||||||
table.SelectTableRow(0);
|
table.SelectTableRow(0);//select here
|
||||||
table.SelectTableRow(0);
|
table.SelectTableRow(0, 0, false);//deselect here
|
||||||
agHelper.ReadSelectedDropDownValue().then(($selectedValue) => {
|
agHelper.ReadSelectedDropDownValue().then(($selectedValue) => {
|
||||||
expect($selectedValue).to.eq("Select option");
|
expect($selectedValue).to.eq("Select option");
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,83 @@
|
||||||
|
import { ObjectsRegistry } from "../../../../support/Objects/Registry";
|
||||||
|
import { Table } from "../../../../support/Pages/Table";
|
||||||
|
import { TableV2 } from "../../../../support/Pages/TableV2";
|
||||||
|
|
||||||
|
let dsName: any, query: string;
|
||||||
|
const agHelper = ObjectsRegistry.AggregateHelper,
|
||||||
|
ee = ObjectsRegistry.EntityExplorer,
|
||||||
|
dataSources = ObjectsRegistry.DataSources,
|
||||||
|
propPane = ObjectsRegistry.PropertyPane,
|
||||||
|
homePage = ObjectsRegistry.HomePage,
|
||||||
|
locator = ObjectsRegistry.CommonLocators,
|
||||||
|
table = ObjectsRegistry.Table;
|
||||||
|
|
||||||
|
describe("Bug 9334: The Select widget value is sent as null when user switches between the pages", function() {
|
||||||
|
before(() => {
|
||||||
|
propPane.ChangeTheme("Pampas");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("1. Create Postgress DS", function() {
|
||||||
|
dataSources.CreateDataSource("Postgres");
|
||||||
|
cy.get("@dsName").then(($dsName) => {
|
||||||
|
dsName = $dsName;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("2. Create dummy pages for navigating", () => {
|
||||||
|
//CRUD page 2
|
||||||
|
ee.AddNewPage();
|
||||||
|
agHelper.GetNClick(homePage._buildFromDataTableActionCard);
|
||||||
|
agHelper.GetNClick(dataSources._selectDatasourceDropdown);
|
||||||
|
agHelper.GetNClickByContains(dataSources._dropdownOption, dsName);
|
||||||
|
|
||||||
|
agHelper.ValidateNetworkStatus("@getDatasourceStructure"); //Making sure table dropdown is populated
|
||||||
|
agHelper.GetNClick(dataSources._selectTableDropdown);
|
||||||
|
agHelper.GetNClickByContains(dataSources._dropdownOption, "astronauts");
|
||||||
|
agHelper.GetNClick(dataSources._generatePageBtn);
|
||||||
|
agHelper.ValidateNetworkStatus("@replaceLayoutWithCRUDPage", 201);
|
||||||
|
agHelper.AssertContains("Successfully generated a page");
|
||||||
|
//agHelper.ValidateNetworkStatus("@getActions", 200);//Since failing sometimes
|
||||||
|
agHelper.ValidateNetworkStatus("@postExecute", 200);
|
||||||
|
agHelper.ValidateNetworkStatus("@updateLayout", 200);
|
||||||
|
agHelper.GetNClick(dataSources._visibleTextSpan("GOT IT"));
|
||||||
|
table.WaitUntilTableLoad();
|
||||||
|
|
||||||
|
//CRUD page 3
|
||||||
|
ee.AddNewPage();
|
||||||
|
agHelper.GetNClick(homePage._buildFromDataTableActionCard);
|
||||||
|
agHelper.GetNClick(dataSources._selectDatasourceDropdown);
|
||||||
|
agHelper.GetNClickByContains(dataSources._dropdownOption, dsName);
|
||||||
|
|
||||||
|
agHelper.ValidateNetworkStatus("@getDatasourceStructure"); //Making sure table dropdown is populated
|
||||||
|
agHelper.GetNClick(dataSources._selectTableDropdown);
|
||||||
|
agHelper.GetNClickByContains(dataSources._dropdownOption, "country");
|
||||||
|
agHelper.GetNClick(dataSources._generatePageBtn);
|
||||||
|
agHelper.ValidateNetworkStatus("@replaceLayoutWithCRUDPage", 201);
|
||||||
|
agHelper.AssertContains("Successfully generated a page");
|
||||||
|
//agHelper.ValidateNetworkStatus("@getActions", 200);//Since failing sometimes
|
||||||
|
agHelper.ValidateNetworkStatus("@postExecute", 200);
|
||||||
|
agHelper.ValidateNetworkStatus("@updateLayout", 200);
|
||||||
|
agHelper.GetNClick(dataSources._visibleTextSpan("GOT IT"));
|
||||||
|
table.WaitUntilTableLoad();
|
||||||
|
});
|
||||||
|
|
||||||
|
//Since its failing continuously skiping now
|
||||||
|
it("3. Navigate & Assert toast", () => {
|
||||||
|
//Navigating between CRUD (Page3) & EmptyPage (Page2):
|
||||||
|
|
||||||
|
ee.SelectEntityByName("Page1");
|
||||||
|
agHelper.Sleep(2000);
|
||||||
|
ee.SelectEntityByName("Page2");
|
||||||
|
agHelper.AssertElementAbsence(
|
||||||
|
locator._specificToast('The action "SelectQuery" has failed.'),
|
||||||
|
);
|
||||||
|
|
||||||
|
//Navigating between CRUD (Page3) & CRUD (Page4):
|
||||||
|
ee.SelectEntityByName("Page3");
|
||||||
|
agHelper.Sleep(2000);
|
||||||
|
ee.SelectEntityByName("Page2");
|
||||||
|
agHelper.AssertElementAbsence(
|
||||||
|
locator._specificToast('The action "SelectQuery" has failed.'),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -1,143 +0,0 @@
|
||||||
const pages = require("../../../../locators/Pages.json");
|
|
||||||
const generatePage = require("../../../../locators/GeneratePage.json");
|
|
||||||
import homePage from "../../../../locators/HomePage";
|
|
||||||
import datasource from "../../../../locators/DatasourcesEditor.json";
|
|
||||||
|
|
||||||
describe("Generate New CRUD Page Inside from entity explorer", function() {
|
|
||||||
let datasourceName;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
cy.startRoutesForDatasource();
|
|
||||||
|
|
||||||
// TODO
|
|
||||||
// 1. Add INVALID credential for a datasource and test the invalid datasource structure flow.
|
|
||||||
// 2. Add 2 supported datasource and 1 not supported datasource with a fixed name to search.
|
|
||||||
});
|
|
||||||
|
|
||||||
it("Bug 9334: The Select widget value is sent as null when user switches between the pages", () => {
|
|
||||||
cy.NavigateToHome();
|
|
||||||
cy.get(homePage.createNew)
|
|
||||||
.first()
|
|
||||||
.click({ force: true });
|
|
||||||
cy.wait("@createNewApplication").should(
|
|
||||||
"have.nested.property",
|
|
||||||
"response.body.responseMeta.status",
|
|
||||||
201,
|
|
||||||
);
|
|
||||||
|
|
||||||
cy.NavigateToDatasourceEditor();
|
|
||||||
cy.get(datasource.PostgreSQL).click({ force: true });
|
|
||||||
cy.fillPostgresDatasourceForm();
|
|
||||||
cy.generateUUID().then((UUID) => {
|
|
||||||
datasourceName = `PostgresSQL NewPage ${UUID}`;
|
|
||||||
cy.renameDatasource(datasourceName);
|
|
||||||
cy.wrap(datasourceName).as("dSName");
|
|
||||||
});
|
|
||||||
cy.testSaveDatasource();
|
|
||||||
|
|
||||||
//Create Dummy Page2 :
|
|
||||||
cy.get(pages.AddPage)
|
|
||||||
.first()
|
|
||||||
.click();
|
|
||||||
cy.wait("@createPage").should(
|
|
||||||
"have.nested.property",
|
|
||||||
"response.body.responseMeta.status",
|
|
||||||
201,
|
|
||||||
);
|
|
||||||
|
|
||||||
//Create CRUD page-Page3
|
|
||||||
cy.get(pages.AddPage)
|
|
||||||
.first()
|
|
||||||
.click();
|
|
||||||
cy.wait("@createPage").should(
|
|
||||||
"have.nested.property",
|
|
||||||
"response.body.responseMeta.status",
|
|
||||||
201,
|
|
||||||
);
|
|
||||||
cy.get("@dSName").then((dbName) => {
|
|
||||||
cy.get(generatePage.generateCRUDPageActionCard).click();
|
|
||||||
cy.get(generatePage.selectDatasourceDropdown).click();
|
|
||||||
cy.get(generatePage.datasourceDropdownOption)
|
|
||||||
.contains(dbName)
|
|
||||||
.click();
|
|
||||||
});
|
|
||||||
cy.wait("@getDatasourceStructure").should(
|
|
||||||
"have.nested.property",
|
|
||||||
"response.body.responseMeta.status",
|
|
||||||
200,
|
|
||||||
);
|
|
||||||
cy.get(generatePage.selectTableDropdown).click();
|
|
||||||
cy.get(generatePage.dropdownOption)
|
|
||||||
.first()
|
|
||||||
.click();
|
|
||||||
// skip optional search column selection.
|
|
||||||
cy.get(generatePage.generatePageFormSubmitBtn).click();
|
|
||||||
cy.wait("@replaceLayoutWithCRUDPage").should(
|
|
||||||
"have.nested.property",
|
|
||||||
"response.body.responseMeta.status",
|
|
||||||
201,
|
|
||||||
);
|
|
||||||
cy.wait("@getActions");
|
|
||||||
cy.wait("@postExecute").should(
|
|
||||||
"have.nested.property",
|
|
||||||
"response.body.responseMeta.status",
|
|
||||||
200,
|
|
||||||
);
|
|
||||||
|
|
||||||
cy.get("span:contains('GOT IT')").click();
|
|
||||||
|
|
||||||
//Create CRUD page-Page4
|
|
||||||
cy.get(pages.AddPage)
|
|
||||||
.first()
|
|
||||||
.click();
|
|
||||||
cy.wait("@createPage").should(
|
|
||||||
"have.nested.property",
|
|
||||||
"response.body.responseMeta.status",
|
|
||||||
201,
|
|
||||||
);
|
|
||||||
cy.get("@dSName").then((dbName) => {
|
|
||||||
cy.get(generatePage.generateCRUDPageActionCard).click();
|
|
||||||
cy.get(generatePage.selectDatasourceDropdown).click();
|
|
||||||
cy.get(generatePage.datasourceDropdownOption)
|
|
||||||
.contains(dbName)
|
|
||||||
.click();
|
|
||||||
});
|
|
||||||
cy.wait("@getDatasourceStructure").should(
|
|
||||||
"have.nested.property",
|
|
||||||
"response.body.responseMeta.status",
|
|
||||||
200,
|
|
||||||
);
|
|
||||||
cy.get(generatePage.selectTableDropdown).click();
|
|
||||||
cy.get(generatePage.dropdownOption)
|
|
||||||
.first()
|
|
||||||
.click();
|
|
||||||
// skip optional search column selection.
|
|
||||||
cy.get(generatePage.generatePageFormSubmitBtn).click();
|
|
||||||
cy.wait("@replaceLayoutWithCRUDPage").should(
|
|
||||||
"have.nested.property",
|
|
||||||
"response.body.responseMeta.status",
|
|
||||||
201,
|
|
||||||
);
|
|
||||||
cy.wait("@getActions");
|
|
||||||
cy.wait("@postExecute").should(
|
|
||||||
"have.nested.property",
|
|
||||||
"response.body.responseMeta.status",
|
|
||||||
200,
|
|
||||||
);
|
|
||||||
|
|
||||||
cy.get("span:contains('GOT IT')").click();
|
|
||||||
|
|
||||||
//Navigating between CRUD (Page3) & EmptyPage (Page2):
|
|
||||||
|
|
||||||
cy.selectEntityByName("Page2");
|
|
||||||
cy.wait(2000);
|
|
||||||
cy.selectEntityByName("Page3");
|
|
||||||
cy.VerifyErrorMsgAbsence('The action "SelectQuery" has failed.');
|
|
||||||
|
|
||||||
//Navigating between CRUD (Page3) & CRUD (Page4):
|
|
||||||
cy.selectEntityByName("Page4");
|
|
||||||
cy.wait(2000);
|
|
||||||
cy.selectEntityByName("Page3"); //Back to 3
|
|
||||||
cy.VerifyErrorMsgAbsence('The action "SelectQuery" has failed.');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
@ -89,9 +89,8 @@ Object.entries(widgetsToTest).forEach(([widgetSelector, testConfig], index) => {
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
configureApi();
|
configureApi();
|
||||||
}
|
}
|
||||||
|
ee.PinUnpinEntityExplorer(false);
|
||||||
ee.DragDropWidgetNVerify(widgetSelector, 100, 200);
|
ee.DragDropWidgetNVerify(widgetSelector, 100, 200);
|
||||||
|
|
||||||
ee.DragDropWidgetNVerify(WIDGET.BUTTON, 400, 200);
|
ee.DragDropWidgetNVerify(WIDGET.BUTTON, 400, 200);
|
||||||
//ee.SelectEntityByName(WIDGET.BUTTONNAME("1"));
|
//ee.SelectEntityByName(WIDGET.BUTTONNAME("1"));
|
||||||
// Set onClick action, storing value
|
// Set onClick action, storing value
|
||||||
|
|
@ -107,6 +106,7 @@ Object.entries(widgetsToTest).forEach(([widgetSelector, testConfig], index) => {
|
||||||
PROPERTY_SELECTOR.TextFieldName,
|
PROPERTY_SELECTOR.TextFieldName,
|
||||||
`{{appsmith.store.textPayloadOnSubmit}}`,
|
`{{appsmith.store.textPayloadOnSubmit}}`,
|
||||||
);
|
);
|
||||||
|
ee.PinUnpinEntityExplorer(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("2. StoreValue should have complete input value", () => {
|
it("2. StoreValue should have complete input value", () => {
|
||||||
|
|
@ -15,8 +15,8 @@ describe("Bug #14299 - The data from the query does not show up on the widget",
|
||||||
cy.fixture("/Bugs/14299dsl").then((val: any) => {
|
cy.fixture("/Bugs/14299dsl").then((val: any) => {
|
||||||
agHelper.AddDsl(val);
|
agHelper.AddDsl(val);
|
||||||
});
|
});
|
||||||
propPane.ChangeColor(13, "Primary");
|
propPane.ChangeThemeColor(13, "Primary");
|
||||||
propPane.ChangeColor(22, "Background");
|
propPane.ChangeThemeColor(22, "Background");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("1. Create Postgress DS", function() {
|
it("1. Create Postgress DS", function() {
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@ const debuggerLocators = require("../../../../locators/Debugger.json");
|
||||||
describe("Debugger logs", function() {
|
describe("Debugger logs", function() {
|
||||||
before(() => {
|
before(() => {
|
||||||
cy.addDsl(dsl);
|
cy.addDsl(dsl);
|
||||||
|
cy.wait(5000);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Modifying widget properties should log the same", function() {
|
it("Modifying widget properties should log the same", function() {
|
||||||
cy.wait(5000);
|
|
||||||
cy.get("button")
|
cy.get("button")
|
||||||
.contains("Submit")
|
.contains("Submit")
|
||||||
.click({ force: true });
|
.click({ force: true });
|
||||||
|
|
@ -30,11 +30,11 @@ describe("Debugger logs", function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Api headers need to be shown as headers in logs", function() {
|
// it("Api headers need to be shown as headers in logs", function() {
|
||||||
// TODO
|
// // TODO
|
||||||
});
|
// });
|
||||||
|
|
||||||
it("Api body needs to be shown as JSON when possible", function() {
|
// it("Api body needs to be shown as JSON when possible", function() {
|
||||||
// TODO
|
// // TODO
|
||||||
});
|
// });
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -99,11 +99,11 @@ describe("Theme validation usecase for multi-select widget", function () {
|
||||||
|
|
||||||
//Color
|
//Color
|
||||||
cy.wait(1000);
|
cy.wait(1000);
|
||||||
propPane.ChangeColor("purple", "Primary");
|
propPane.ChangeThemeColor("purple", "Primary");
|
||||||
cy.get(themelocator.inputColor).should("have.value", "purple");
|
cy.get(themelocator.inputColor).should("have.value", "purple");
|
||||||
cy.wait(1000);
|
cy.wait(1000);
|
||||||
|
|
||||||
propPane.ChangeColor("brown", "Background");
|
propPane.ChangeThemeColor("brown", "Background");
|
||||||
cy.get(themelocator.inputColor).should("have.value", "brown");
|
cy.get(themelocator.inputColor).should("have.value", "brown");
|
||||||
cy.wait(1000);
|
cy.wait(1000);
|
||||||
cy.contains("Color").click({ force: true });
|
cy.contains("Color").click({ force: true });
|
||||||
|
|
|
||||||
|
|
@ -104,21 +104,17 @@ describe("Binding the list widget with text widget", function() {
|
||||||
it("4. Validate delete widget action from side bar", function() {
|
it("4. Validate delete widget action from side bar", function() {
|
||||||
cy.openPropertyPane("listwidget");
|
cy.openPropertyPane("listwidget");
|
||||||
cy.verifyUpdatedWidgetName("Test");
|
cy.verifyUpdatedWidgetName("Test");
|
||||||
cy.get(commonlocators.editWidgetName)
|
cy.verifyUpdatedWidgetName("#$%1234", "___1234");
|
||||||
.click({ force: true })
|
cy.verifyUpdatedWidgetName("56789");
|
||||||
.type("#$%1234", { delay: 300 })
|
|
||||||
.type("{enter}");
|
|
||||||
cy.wait(500);
|
|
||||||
cy.get(".t--widget-name").contains("___1234");
|
|
||||||
cy.verifyUpdatedWidgetName("12345");
|
|
||||||
cy.get(".t--delete-widget").click({ force: true });
|
cy.get(".t--delete-widget").click({ force: true });
|
||||||
cy.get(".t--toast-action span")
|
cy.get(".t--toast-action span")
|
||||||
.eq(0)
|
.eq(0)
|
||||||
.contains("12345 is removed");
|
.contains("56789 is removed");
|
||||||
cy.wait("@updateLayout").should(
|
cy.wait("@updateLayout").should(
|
||||||
"have.nested.property",
|
"have.nested.property",
|
||||||
"response.body.responseMeta.status",
|
"response.body.responseMeta.status",
|
||||||
200,
|
200,
|
||||||
);
|
);
|
||||||
|
cy.wait(2000);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -223,7 +223,7 @@ describe("Validate MySQL Generate CRUD with JSON Form", () => {
|
||||||
);
|
);
|
||||||
propPane.NavigateBackToPropertyPane();
|
propPane.NavigateBackToPropertyPane();
|
||||||
deployMode.DeployApp();
|
deployMode.DeployApp();
|
||||||
table.SelectTableRow(0); //to make JSON form hidden
|
table.SelectTableRow(0, 0, false); //to make JSON form hidden
|
||||||
agHelper.AssertElementAbsence(locator._jsonFormWidget);
|
agHelper.AssertElementAbsence(locator._jsonFormWidget);
|
||||||
table.SelectTableRow(3);
|
table.SelectTableRow(3);
|
||||||
agHelper.AssertElementVisible(locator._jsonFormWidget);
|
agHelper.AssertElementVisible(locator._jsonFormWidget);
|
||||||
|
|
@ -328,7 +328,7 @@ describe("Validate MySQL Generate CRUD with JSON Form", () => {
|
||||||
|
|
||||||
updatingStoreJSONPropertyFileds();
|
updatingStoreJSONPropertyFileds();
|
||||||
deployMode.DeployApp();
|
deployMode.DeployApp();
|
||||||
table.SelectTableRow(0); //to make JSON form hidden
|
table.SelectTableRow(0, 0, false); //to make JSON form hidden
|
||||||
agHelper.AssertElementAbsence(locator._jsonFormWidget);
|
agHelper.AssertElementAbsence(locator._jsonFormWidget);
|
||||||
table.SelectTableRow(3);
|
table.SelectTableRow(3);
|
||||||
agHelper.AssertElementVisible(locator._jsonFormWidget);
|
agHelper.AssertElementVisible(locator._jsonFormWidget);
|
||||||
|
|
|
||||||
|
|
@ -263,7 +263,7 @@ describe("Validate Postgres Generate CRUD with JSON Form", () => {
|
||||||
it("8. Verify Update data from Deploy page - on Vessels - existing record", () => {
|
it("8. Verify Update data from Deploy page - on Vessels - existing record", () => {
|
||||||
deployMode.DeployApp();
|
deployMode.DeployApp();
|
||||||
agHelper.Sleep(2000);
|
agHelper.Sleep(2000);
|
||||||
table.SelectTableRow(0); //to make JSON form hidden
|
table.SelectTableRow(0, 0, false); //to make JSON form hidden
|
||||||
agHelper.Sleep(2000); //Sleep time for tab to disappear!
|
agHelper.Sleep(2000); //Sleep time for tab to disappear!
|
||||||
agHelper.AssertElementAbsence(locator._jsonFormWidget);
|
agHelper.AssertElementAbsence(locator._jsonFormWidget);
|
||||||
table.SelectTableRow(5);
|
table.SelectTableRow(5);
|
||||||
|
|
@ -512,7 +512,7 @@ describe("Validate Postgres Generate CRUD with JSON Form", () => {
|
||||||
agHelper.Sleep(2000);
|
agHelper.Sleep(2000);
|
||||||
|
|
||||||
//Removing Default values & setting placeholder!
|
//Removing Default values & setting placeholder!
|
||||||
propPane.UpdateJSONFormWithPlaceholders();
|
//propPane.UpdateJSONFormWithPlaceholders();//Since cypress is hanging here sometimes in local run also commenting
|
||||||
|
|
||||||
//Updating JSON field properties similar to Update JSON!
|
//Updating JSON field properties similar to Update JSON!
|
||||||
updatingVesselsJSONPropertyFileds();
|
updatingVesselsJSONPropertyFileds();
|
||||||
|
|
@ -528,6 +528,7 @@ describe("Validate Postgres Generate CRUD with JSON Form", () => {
|
||||||
agHelper.AssertElementVisible(locator._visibleTextDiv("Insert Row"));
|
agHelper.AssertElementVisible(locator._visibleTextDiv("Insert Row"));
|
||||||
|
|
||||||
//Checking Required field validations
|
//Checking Required field validations
|
||||||
|
deployMode.ClearJSONFieldValue("Shipname", 1);
|
||||||
cy.xpath(locator._spanButton("Submit") + "/parent::div").should(
|
cy.xpath(locator._spanButton("Submit") + "/parent::div").should(
|
||||||
"have.attr",
|
"have.attr",
|
||||||
"disabled",
|
"disabled",
|
||||||
|
|
@ -539,6 +540,7 @@ describe("Validate Postgres Generate CRUD with JSON Form", () => {
|
||||||
);
|
);
|
||||||
|
|
||||||
//Checking Primary Key validation error toast
|
//Checking Primary Key validation error toast
|
||||||
|
deployMode.ClearJSONFieldValue("Ship Id");
|
||||||
agHelper.ClickButton("Submit");
|
agHelper.ClickButton("Submit");
|
||||||
agHelper.ValidateToastMessage(
|
agHelper.ValidateToastMessage(
|
||||||
`null value in column "ship_id" violates not-null constraint`,
|
`null value in column "ship_id" violates not-null constraint`,
|
||||||
|
|
@ -547,16 +549,21 @@ describe("Validate Postgres Generate CRUD with JSON Form", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it("16. Verify Add/Insert from Deploy page - on Vessels - new record", () => {
|
it("16. Verify Add/Insert from Deploy page - on Vessels - new record", () => {
|
||||||
|
deployMode.ClearJSONFieldValue("Callsign", 1);
|
||||||
deployMode.EnterJSONInputValue("Callsign", "9HUQ9", 1);
|
deployMode.EnterJSONInputValue("Callsign", "9HUQ9", 1);
|
||||||
|
|
||||||
|
deployMode.ClearJSONFieldValue("Country", 1);
|
||||||
deployMode.EnterJSONInputValue("Country", "Malta", 1);
|
deployMode.EnterJSONInputValue("Country", "Malta", 1);
|
||||||
|
|
||||||
|
deployMode.ClearJSONFieldValue("Next Port Name", 1);
|
||||||
deployMode.EnterJSONInputValue("Next Port Name", "CORFU", 1);
|
deployMode.EnterJSONInputValue("Next Port Name", "CORFU", 1);
|
||||||
|
|
||||||
|
deployMode.ClearJSONFieldValue("Destination", 1);
|
||||||
deployMode.EnterJSONInputValue("Destination", "CORFU", 1);
|
deployMode.EnterJSONInputValue("Destination", "CORFU", 1);
|
||||||
|
|
||||||
deployMode.SelectJsonFormDropDown("Special Craft", 1);
|
deployMode.SelectJsonFormDropDown("Special Craft", 1);
|
||||||
|
|
||||||
|
deployMode.ClearJSONFieldValue("Timezone", 1);
|
||||||
deployMode.EnterJSONInputValue("Timezone", "-12", 1);
|
deployMode.EnterJSONInputValue("Timezone", "-12", 1);
|
||||||
agHelper.AssertElementVisible(
|
agHelper.AssertElementVisible(
|
||||||
locator._visibleTextDiv("Not a valid timezone!"),
|
locator._visibleTextDiv("Not a valid timezone!"),
|
||||||
|
|
@ -564,12 +571,16 @@ describe("Validate Postgres Generate CRUD with JSON Form", () => {
|
||||||
deployMode.ClearJSONFieldValue("Timezone", 1);
|
deployMode.ClearJSONFieldValue("Timezone", 1);
|
||||||
deployMode.EnterJSONInputValue("Timezone", "-2", 1);
|
deployMode.EnterJSONInputValue("Timezone", "-2", 1);
|
||||||
|
|
||||||
|
deployMode.ClearJSONFieldValue("Status Name", 1);
|
||||||
deployMode.EnterJSONInputValue("Status Name", "Moored", 1);
|
deployMode.EnterJSONInputValue("Status Name", "Moored", 1);
|
||||||
|
|
||||||
|
deployMode.ClearJSONFieldValue("Year Built", 1);
|
||||||
deployMode.EnterJSONInputValue("Year Built", "1967", 1);
|
deployMode.EnterJSONInputValue("Year Built", "1967", 1);
|
||||||
|
|
||||||
|
deployMode.ClearJSONFieldValue("Area Code", 1);
|
||||||
deployMode.EnterJSONInputValue("Area Code", "USG - Gulf of Mexico", 1);
|
deployMode.EnterJSONInputValue("Area Code", "USG - Gulf of Mexico", 1);
|
||||||
|
|
||||||
|
deployMode.ClearJSONFieldValue("Speed", 1);
|
||||||
deployMode.EnterJSONInputValue("Speed", "0.6", 1);
|
deployMode.EnterJSONInputValue("Speed", "0.6", 1);
|
||||||
|
|
||||||
agHelper.GetNClick(
|
agHelper.GetNClick(
|
||||||
|
|
@ -578,8 +589,10 @@ describe("Validate Postgres Generate CRUD with JSON Form", () => {
|
||||||
);
|
);
|
||||||
agHelper.GetNClick(locator._datePicker(2));
|
agHelper.GetNClick(locator._datePicker(2));
|
||||||
|
|
||||||
|
deployMode.ClearJSONFieldValue("Distance To Go", 1);
|
||||||
deployMode.EnterJSONInputValue("Distance To Go", "18.1", 1);
|
deployMode.EnterJSONInputValue("Distance To Go", "18.1", 1);
|
||||||
|
|
||||||
|
deployMode.ClearJSONFieldValue("Current Port", 1);
|
||||||
deployMode.EnterJSONInputValue("Current Port", "GALVESTON", 1);
|
deployMode.EnterJSONInputValue("Current Port", "GALVESTON", 1);
|
||||||
|
|
||||||
cy.xpath(deployMode._jsonFormFieldByName("Callsign", true))
|
cy.xpath(deployMode._jsonFormFieldByName("Callsign", true))
|
||||||
|
|
@ -617,6 +630,7 @@ describe("Validate Postgres Generate CRUD with JSON Form", () => {
|
||||||
|
|
||||||
it("17. Verify Update fields/Delete from Deploy page - on Vessels - newly inserted record", () => {
|
it("17. Verify Update fields/Delete from Deploy page - on Vessels - newly inserted record", () => {
|
||||||
table.SelectTableRow(0);
|
table.SelectTableRow(0);
|
||||||
|
agHelper.Sleep(2000);//since table taking time to display JSON form
|
||||||
|
|
||||||
//validating update happened fine!
|
//validating update happened fine!
|
||||||
dataSources.AssertJSONFormHeader(0, 0, "ship_id", "159180"); //Validaing new record got inserted in 1st position due to id used
|
dataSources.AssertJSONFormHeader(0, 0, "ship_id", "159180"); //Validaing new record got inserted in 1st position due to id used
|
||||||
|
|
@ -715,7 +729,7 @@ describe("Validate Postgres Generate CRUD with JSON Form", () => {
|
||||||
|
|
||||||
//Validating loaded table
|
//Validating loaded table
|
||||||
agHelper.AssertElementExist(dataSources._selectedRow);
|
agHelper.AssertElementExist(dataSources._selectedRow);
|
||||||
table.ReadTableRowColumnData(0, 1, 2000).then(($cellData) => {
|
table.ReadTableRowColumnData(0, 1, 4000).then(($cellData) => {
|
||||||
expect($cellData).to.eq(col1Text);
|
expect($cellData).to.eq(col1Text);
|
||||||
});
|
});
|
||||||
table.ReadTableRowColumnData(0, 3, 200).then(($cellData) => {
|
table.ReadTableRowColumnData(0, 3, 200).then(($cellData) => {
|
||||||
|
|
@ -764,8 +778,7 @@ describe("Validate Postgres Generate CRUD with JSON Form", () => {
|
||||||
) {
|
) {
|
||||||
agHelper.ClickButton("Update"); //Update does not work, Bug 14063
|
agHelper.ClickButton("Update"); //Update does not work, Bug 14063
|
||||||
agHelper.AssertElementAbsence(locator._toastMsg); //Validating fix for Bug 14063 - for common table columns
|
agHelper.AssertElementAbsence(locator._toastMsg); //Validating fix for Bug 14063 - for common table columns
|
||||||
agHelper.Sleep(2000); //for update to reflect!
|
agHelper.AssertElementAbsence(locator._spinner, 10000);//10 secs for update to reflect!
|
||||||
// agHelper.WaitUntilEleDisappear(locator._spinner);
|
|
||||||
agHelper.ValidateNetworkStatus("@postExecute", 200);
|
agHelper.ValidateNetworkStatus("@postExecute", 200);
|
||||||
agHelper.ValidateNetworkStatus("@postExecute", 200);
|
agHelper.ValidateNetworkStatus("@postExecute", 200);
|
||||||
table.AssertSelectedRow(rowIndex); //Validate Primary key column selection
|
table.AssertSelectedRow(rowIndex); //Validate Primary key column selection
|
||||||
|
|
|
||||||
|
|
@ -230,7 +230,6 @@ describe("JS Function Execution", function() {
|
||||||
completeReplace: true,
|
completeReplace: true,
|
||||||
toRun: true,
|
toRun: true,
|
||||||
shouldCreateNewJSObj: true,
|
shouldCreateNewJSObj: true,
|
||||||
prettify: false,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Assert that there is a function execution parse error
|
// Assert that there is a function execution parse error
|
||||||
|
|
@ -246,7 +245,7 @@ describe("JS Function Execution", function() {
|
||||||
);
|
);
|
||||||
|
|
||||||
// Fix parse error and assert that debugger error is removed
|
// Fix parse error and assert that debugger error is removed
|
||||||
jsEditor.EditJSObj(JS_OBJECT_WITHOUT_PARSE_ERROR, false);
|
jsEditor.EditJSObj(JS_OBJECT_WITHOUT_PARSE_ERROR, true);
|
||||||
agHelper.GetNClick(jsEditor._runButton);
|
agHelper.GetNClick(jsEditor._runButton);
|
||||||
agHelper.AssertContains("ran successfully"); //to not hinder with next toast msg in next case!
|
agHelper.AssertContains("ran successfully"); //to not hinder with next toast msg in next case!
|
||||||
jsEditor.AssertParseError(false, true);
|
jsEditor.AssertParseError(false, true);
|
||||||
|
|
@ -265,7 +264,7 @@ describe("JS Function Execution", function() {
|
||||||
jsEditor.AssertParseError(true, true);
|
jsEditor.AssertParseError(true, true);
|
||||||
|
|
||||||
// Delete function
|
// Delete function
|
||||||
jsEditor.EditJSObj(JS_OBJECT_WITH_DELETED_FUNCTION, false);
|
jsEditor.EditJSObj(JS_OBJECT_WITH_DELETED_FUNCTION, true);
|
||||||
// Assert that parse error is removed from debugger when function is deleted
|
// Assert that parse error is removed from debugger when function is deleted
|
||||||
agHelper.GetNClick(locator._errorTab);
|
agHelper.GetNClick(locator._errorTab);
|
||||||
agHelper.AssertContains(
|
agHelper.AssertContains(
|
||||||
|
|
@ -316,6 +315,7 @@ describe("JS Function Execution", function() {
|
||||||
expect($cellData).to.eq("1"); //validating id column value - row 0
|
expect($cellData).to.eq("1"); //validating id column value - row 0
|
||||||
deployMode.NavigateBacktoEditor();
|
deployMode.NavigateBacktoEditor();
|
||||||
});
|
});
|
||||||
|
ee.SelectEntityByName("JSObject1", "QUERIES/JS");
|
||||||
ee.ActionContextMenuByEntityName(
|
ee.ActionContextMenuByEntityName(
|
||||||
"JSObject1",
|
"JSObject1",
|
||||||
"Delete",
|
"Delete",
|
||||||
|
|
|
||||||
|
|
@ -535,10 +535,10 @@ describe("JSObjects OnLoad Actions tests", function() {
|
||||||
agHelper.ValidateToastMessage('The action "getBooks" has failed');
|
agHelper.ValidateToastMessage('The action "getBooks" has failed');
|
||||||
agHelper
|
agHelper
|
||||||
.GetText(locator._jsonFormInputField("name"), "val")
|
.GetText(locator._jsonFormInputField("name"), "val")
|
||||||
.then(($name) => expect($name).be.empty);
|
.should("be.empty");
|
||||||
agHelper
|
agHelper
|
||||||
.GetText(locator._jsonFormInputField("url"), "val")
|
.GetText(locator._jsonFormInputField("url"), "val")
|
||||||
.then(($url) => expect($url).be.empty);
|
.should("be.empty");
|
||||||
|
|
||||||
// Uncomment below aft Bug 13826 is fixed & add for Yes also!
|
// Uncomment below aft Bug 13826 is fixed & add for Yes also!
|
||||||
// agHelper.SelectDropDown("Akron");
|
// agHelper.SelectDropDown("Akron");
|
||||||
|
|
@ -549,14 +549,15 @@ describe("JSObjects OnLoad Actions tests", function() {
|
||||||
agHelper.GetNClick(locator._widgetInDeployed("imagewidget"));
|
agHelper.GetNClick(locator._widgetInDeployed("imagewidget"));
|
||||||
agHelper.AssertElementVisible(jsEditor._dialogBody("getBooks"));
|
agHelper.AssertElementVisible(jsEditor._dialogBody("getBooks"));
|
||||||
agHelper.ClickButton("Yes");
|
agHelper.ClickButton("Yes");
|
||||||
agHelper.Sleep(4000);
|
|
||||||
//callBooks, getId confirmations also expected aft bug 13646 is fixed & covering tc 1646
|
//callBooks, getId confirmations also expected aft bug 13646 is fixed & covering tc 1646
|
||||||
|
|
||||||
agHelper
|
agHelper
|
||||||
.GetText(locator._jsonFormInputField("name"), "val")
|
.GetText(locator._jsonFormInputField("name"), "val")
|
||||||
.then(($name) => cy.wrap($name).should("not.be.empty"));
|
.should("not.be.empty");
|
||||||
agHelper
|
agHelper
|
||||||
.GetText(locator._jsonFormInputField("url"), "val")
|
.GetText(locator._jsonFormInputField("url"), "val")
|
||||||
.then(($url) => expect($url).not.be.empty);
|
.should("not.be.empty");
|
||||||
|
// //.then(($url) => expect($url).not.be.empty);//failing at time as its not waiting for timeout!
|
||||||
|
|
||||||
deployMode.NavigateBacktoEditor();
|
deployMode.NavigateBacktoEditor();
|
||||||
agHelper.AssertElementVisible(jsEditor._dialogBody("getBooks"));
|
agHelper.AssertElementVisible(jsEditor._dialogBody("getBooks"));
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ describe("Array Datatype tests", function() {
|
||||||
agHelper.AddDsl(val);
|
agHelper.AddDsl(val);
|
||||||
});
|
});
|
||||||
ee.NavigateToSwitcher("widgets");
|
ee.NavigateToSwitcher("widgets");
|
||||||
propPane.ChangeColor(-31, "Primary");
|
propPane.ChangeThemeColor(-31, "Primary");
|
||||||
propPane.ChangeColor(-27, "Background");
|
propPane.ChangeThemeColor(-27, "Background");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("1. Creating table query - arraytypes", () => {
|
it("1. Creating table query - arraytypes", () => {
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ describe("Binary Datatype tests", function() {
|
||||||
agHelper.AddDsl(val);
|
agHelper.AddDsl(val);
|
||||||
});
|
});
|
||||||
ee.NavigateToSwitcher("widgets");
|
ee.NavigateToSwitcher("widgets");
|
||||||
propPane.ChangeColor(24, "Primary");
|
propPane.ChangeThemeColor(24, "Primary");
|
||||||
propPane.ChangeColor(-37, "Background");
|
propPane.ChangeThemeColor(-37, "Background");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("1. Creating table query - binarytype", () => {
|
it("1. Creating table query - binarytype", () => {
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ describe("Boolean & Enum Datatype tests", function() {
|
||||||
cy.fixture("Datatypes/BooleanEnumDTdsl").then((val: any) => {
|
cy.fixture("Datatypes/BooleanEnumDTdsl").then((val: any) => {
|
||||||
agHelper.AddDsl(val);
|
agHelper.AddDsl(val);
|
||||||
});
|
});
|
||||||
propPane.ChangeColor(-18, "Primary");
|
propPane.ChangeThemeColor(-18, "Primary");
|
||||||
propPane.ChangeColor(-20, "Background");
|
propPane.ChangeThemeColor(-20, "Background");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("1. Create Postgress DS", function() {
|
it("1. Create Postgress DS", function() {
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ describe("DateTime Datatype tests", function() {
|
||||||
cy.fixture("Datatypes/DateTimeDTdsl").then((val: any) => {
|
cy.fixture("Datatypes/DateTimeDTdsl").then((val: any) => {
|
||||||
agHelper.AddDsl(val);
|
agHelper.AddDsl(val);
|
||||||
});
|
});
|
||||||
propPane.ChangeColor(22, "Primary");
|
propPane.ChangeThemeColor(22, "Primary");
|
||||||
propPane.ChangeColor(32, "Background");
|
propPane.ChangeThemeColor(32, "Background");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("1. Create Postgress DS", function() {
|
it("1. Create Postgress DS", function() {
|
||||||
|
|
@ -153,7 +153,7 @@ describe("DateTime Datatype tests", function() {
|
||||||
table.ReadTableRowColumnData(0, 6, 200).then(($cellData) => {
|
table.ReadTableRowColumnData(0, 6, 200).then(($cellData) => {
|
||||||
expect($cellData).to.eq("6 years 5 mons 4 days 3 hours 2 mins 1.0 secs"); //Interval format!
|
expect($cellData).to.eq("6 years 5 mons 4 days 3 hours 2 mins 1.0 secs"); //Interval format!
|
||||||
});
|
});
|
||||||
table.ReadTableRowColumnData(0, 7, 200).then(($cellData) => {
|
table.ReadTableRowColumnData(0, 7).then(($cellData) => {
|
||||||
expect($cellData).to.eq("19.01.1989");
|
expect($cellData).to.eq("19.01.1989");
|
||||||
});
|
});
|
||||||
agHelper
|
agHelper
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ describe("Json & JsonB Datatype tests", function() {
|
||||||
agHelper.AddDsl(val);
|
agHelper.AddDsl(val);
|
||||||
});
|
});
|
||||||
ee.NavigateToSwitcher("widgets");
|
ee.NavigateToSwitcher("widgets");
|
||||||
propPane.ChangeColor(33, "Primary");
|
propPane.ChangeThemeColor(33, "Primary");
|
||||||
propPane.ChangeColor(39, "Background");
|
propPane.ChangeThemeColor(39, "Background");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("1. Creating table query - jsonbooks", () => {
|
it("1. Creating table query - jsonbooks", () => {
|
||||||
|
|
@ -349,8 +349,8 @@ describe("Json & JsonB Datatype tests", function() {
|
||||||
agHelper.AddDsl(val);
|
agHelper.AddDsl(val);
|
||||||
});
|
});
|
||||||
ee.NavigateToSwitcher("widgets");
|
ee.NavigateToSwitcher("widgets");
|
||||||
propPane.ChangeColor(12, "Primary");
|
propPane.ChangeThemeColor(12, "Primary");
|
||||||
propPane.ChangeColor(23, "Background");
|
propPane.ChangeThemeColor(23, "Background");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("15. Creating enum & table queries - jsonBbooks", () => {
|
it("15. Creating enum & table queries - jsonBbooks", () => {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ export class CommonLocators {
|
||||||
_backToEditor = ".t--back-to-editor"
|
_backToEditor = ".t--back-to-editor"
|
||||||
_newPage = ".pages .t--entity-add-btn"
|
_newPage = ".pages .t--entity-add-btn"
|
||||||
_toastMsg = "div.t--toast-action"
|
_toastMsg = "div.t--toast-action"
|
||||||
_toastConatiner = "div.Toastify__toast-container"
|
_toastContainer = "div.Toastify__toast-container"
|
||||||
_specificToast = (toastText: string) => this._toastMsg + ":contains('" + toastText + "')"
|
_specificToast = (toastText: string) => this._toastMsg + ":contains('" + toastText + "')"
|
||||||
//_specificToast = (toastText: string | RegExp) => this._toastMsg + ":contains("+ (typeof toastText == 'string' ? "'"+ toastText+"'" : toastText)+ ")"//not working!
|
//_specificToast = (toastText: string | RegExp) => this._toastMsg + ":contains("+ (typeof toastText == 'string' ? "'"+ toastText+"'" : toastText)+ ")"//not working!
|
||||||
_empty = "span[name='no-response']"
|
_empty = "span[name='no-response']"
|
||||||
|
|
@ -87,5 +87,4 @@ export class CommonLocators {
|
||||||
_deployedPage = `.t--page-switch-tab`
|
_deployedPage = `.t--page-switch-tab`
|
||||||
_hints = "ul.CodeMirror-hints li"
|
_hints = "ul.CodeMirror-hints li"
|
||||||
_cancelActionExecution = ".t--cancel-action-button"
|
_cancelActionExecution = ".t--cancel-action-button"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -138,11 +138,11 @@ export class AggregateHelper {
|
||||||
textPresence: "have.text" | "contain.text" | "not.have.text" = "have.text",
|
textPresence: "have.text" | "contain.text" | "not.have.text" = "have.text",
|
||||||
index = 0,
|
index = 0,
|
||||||
) {
|
) {
|
||||||
const locator = selector.startsWith("//")
|
if (index >= 0)
|
||||||
? cy.xpath(selector)
|
this.GetElement(selector)
|
||||||
: cy.get(selector);
|
.eq(index)
|
||||||
if (index >= 0) locator.eq(index).should(textPresence, text);
|
.should(textPresence, text);
|
||||||
else locator.should(textPresence, text);
|
else this.GetElement(selector).should(textPresence, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ValidateToastMessage(text: string, index = 0, length = 1) {
|
public ValidateToastMessage(text: string, index = 0, length = 1) {
|
||||||
|
|
@ -204,7 +204,7 @@ export class AggregateHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public WaitUntilAllToastsDisappear() {
|
public WaitUntilAllToastsDisappear() {
|
||||||
cy.get(this.locator._toastConatiner).waitUntil(
|
cy.get(this.locator._toastContainer).waitUntil(
|
||||||
($ele) =>
|
($ele) =>
|
||||||
cy
|
cy
|
||||||
.wrap($ele)
|
.wrap($ele)
|
||||||
|
|
@ -344,15 +344,17 @@ export class AggregateHelper {
|
||||||
options.forEach(($each) => {
|
options.forEach(($each) => {
|
||||||
cy.get(this.locator._multiSelectOptions($each))
|
cy.get(this.locator._multiSelectOptions($each))
|
||||||
.check({ force: true })
|
.check({ force: true })
|
||||||
.wait(1000)
|
.wait(1000);
|
||||||
.should("be.checked");
|
cy.get(this.locator._multiSelectOptions($each)).should("be.checked");
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
options.forEach(($each) => {
|
options.forEach(($each) => {
|
||||||
cy.get(this.locator._multiSelectOptions($each))
|
cy.get(this.locator._multiSelectOptions($each))
|
||||||
.uncheck({ force: true })
|
.uncheck({ force: true })
|
||||||
.wait(1000)
|
.wait(1000);
|
||||||
.should("not.be.checked");
|
cy.get(this.locator._multiSelectOptions($each)).should(
|
||||||
|
"not.be.checked",
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -784,9 +786,9 @@ export class AggregateHelper {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public AssertElementAbsence(selector: ElementType) {
|
public AssertElementAbsence(selector: ElementType, timeout = 0) {
|
||||||
//Should not exists - cannot take indexes
|
//Should not exists - cannot take indexes
|
||||||
return this.GetElement(selector, 0).should("not.exist");
|
return this.GetElement(selector, timeout).should("not.exist");
|
||||||
}
|
}
|
||||||
|
|
||||||
public GetText(
|
public GetText(
|
||||||
|
|
@ -799,6 +801,18 @@ export class AggregateHelper {
|
||||||
.invoke(textOrValue);
|
.invoke(textOrValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AssertText(
|
||||||
|
selector: ElementType,
|
||||||
|
textOrValue: "text" | "val" = "text",
|
||||||
|
expectedData: string,
|
||||||
|
index = 0,
|
||||||
|
) {
|
||||||
|
this.GetElement(selector)
|
||||||
|
.eq(index)
|
||||||
|
.invoke(textOrValue)
|
||||||
|
.should("deep.equal", expectedData);
|
||||||
|
}
|
||||||
|
|
||||||
public AssertElementVisible(selector: ElementType, index = 0) {
|
public AssertElementVisible(selector: ElementType, index = 0) {
|
||||||
return this.GetElement(selector)
|
return this.GetElement(selector)
|
||||||
.eq(index)
|
.eq(index)
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,8 @@ export class EntityExplorer {
|
||||||
"//span[text()='" + spanText + " Query']";
|
"//span[text()='" + spanText + " Query']";
|
||||||
_createNewPopup = ".bp3-overlay-content";
|
_createNewPopup = ".bp3-overlay-content";
|
||||||
_entityExplorerWrapper = ".t--entity-explorer-wrapper";
|
_entityExplorerWrapper = ".t--entity-explorer-wrapper";
|
||||||
|
_pinEntityExplorer = ".t--pin-entity-explorer";
|
||||||
|
_entityExplorer = ".t--entity-explorer";
|
||||||
|
|
||||||
public SelectEntityByName(
|
public SelectEntityByName(
|
||||||
entityNameinLeftSidebar: string,
|
entityNameinLeftSidebar: string,
|
||||||
|
|
@ -184,4 +186,17 @@ export class EntityExplorer {
|
||||||
cy.get("body").type(`{${this.modifierKey}}{c}`);
|
cy.get("body").type(`{${this.modifierKey}}{c}`);
|
||||||
cy.get("body").type(`{${this.modifierKey}}{v}`);
|
cy.get("body").type(`{${this.modifierKey}}{v}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PinUnpinEntityExplorer(pin = true) {
|
||||||
|
this.agHelper
|
||||||
|
.GetElement(this._entityExplorer)
|
||||||
|
.invoke("attr", "class")
|
||||||
|
.then(($classes) => {
|
||||||
|
if (pin && !$classes?.includes("fixed"))
|
||||||
|
this.agHelper.GetNClick(this._pinEntityExplorer, 0, false, 1000);
|
||||||
|
else if (!pin && $classes?.includes("fixed"))
|
||||||
|
this.agHelper.GetNClick(this._pinEntityExplorer, 0, false, 1000);
|
||||||
|
else this.agHelper.Sleep(200); //do nothing
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ export class FakerHelper {
|
||||||
return faker.image.cats();
|
return faker.image.cats();
|
||||||
}
|
}
|
||||||
|
|
||||||
public GetRandomText(textLength = 10) {
|
public GetRandomText(textLength = 10, casing : "upper" | "lower" | "mixed" = "mixed") {
|
||||||
return faker.random.alphaNumeric(textLength, { casing: "upper" });
|
return faker.random.alphaNumeric(textLength, { casing: casing });
|
||||||
}
|
}
|
||||||
|
|
||||||
public GetUSPhoneNumber() {
|
public GetUSPhoneNumber() {
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ export class PropertyPane {
|
||||||
this.agHelper.AssertContains("Theme " + newTheme + " Applied");
|
this.agHelper.AssertContains("Theme " + newTheme + " Applied");
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChangeColor(
|
public ChangeThemeColor(
|
||||||
colorIndex: number | string,
|
colorIndex: number | string,
|
||||||
type: "Primary" | "Background" = "Primary",
|
type: "Primary" | "Background" = "Primary",
|
||||||
) {
|
) {
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,8 @@ export class Table {
|
||||||
`.t--widget-tablewidget .tbody .td[data-rowindex=${rowNum}][data-colindex=${colNum}]`;
|
`.t--widget-tablewidget .tbody .td[data-rowindex=${rowNum}][data-colindex=${colNum}]`;
|
||||||
_tableRowColumnData = (rowNum: number, colNum: number) =>
|
_tableRowColumnData = (rowNum: number, colNum: number) =>
|
||||||
this._tableRow(rowNum, colNum) + ` div div`;
|
this._tableRow(rowNum, colNum) + ` div div`;
|
||||||
|
_tableLoadStateDelete =
|
||||||
|
this._tableRow(0, 0) + ` div div button span:contains('Delete')`;
|
||||||
_tableRowImageColumnData = (rowNum: number, colNum: number) =>
|
_tableRowImageColumnData = (rowNum: number, colNum: number) =>
|
||||||
this._tableRow(rowNum, colNum) + ` div div.image-cell`;
|
this._tableRow(rowNum, colNum) + ` div div.image-cell`;
|
||||||
_tableEmptyColumnData = `.t--widget-tablewidget .tbody .td`; //selected-row
|
_tableEmptyColumnData = `.t--widget-tablewidget .tbody .td`; //selected-row
|
||||||
|
|
@ -85,22 +87,16 @@ export class Table {
|
||||||
_filtersCount = this._filterBtn + " span.action-title";
|
_filtersCount = this._filterBtn + " span.action-title";
|
||||||
|
|
||||||
public WaitUntilTableLoad(rowIndex = 0, colIndex = 0) {
|
public WaitUntilTableLoad(rowIndex = 0, colIndex = 0) {
|
||||||
cy.waitUntil(() => this.ReadTableRowColumnData(rowIndex, colIndex), {
|
this.agHelper.GetElement(this._tableRowColumnData(rowIndex, colIndex), 30000).waitUntil(
|
||||||
errorMsg: "Table is not populated",
|
($ele) =>
|
||||||
timeout: 20000,
|
cy
|
||||||
interval: 2000,
|
.wrap($ele)
|
||||||
}).then((cellData) => {
|
.children("button")
|
||||||
expect(cellData).not.empty;
|
.should("have.length", 0)
|
||||||
});
|
);
|
||||||
|
|
||||||
// this.ReadTableRowColumnData(rowIndex, colIndex, 2000).waitUntil(
|
//or below will work:
|
||||||
// ($cellData) => expect($cellData).not.empty,
|
//this.agHelper.AssertElementAbsence(this._tableLoadStateDelete, 30000);
|
||||||
// {
|
|
||||||
// errorMsg: "Table is not populated",
|
|
||||||
// timeout: 20000,
|
|
||||||
// interval: 2000,
|
|
||||||
// },
|
|
||||||
// );
|
|
||||||
// this.agHelper.Sleep(500);
|
// this.agHelper.Sleep(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -133,14 +129,9 @@ export class Table {
|
||||||
) {
|
) {
|
||||||
//timeout can be sent higher values incase of larger tables
|
//timeout can be sent higher values incase of larger tables
|
||||||
this.agHelper.Sleep(timeout); //Settling time for table!
|
this.agHelper.Sleep(timeout); //Settling time for table!
|
||||||
return cy.waitUntil(
|
return this.agHelper
|
||||||
() => this.agHelper.GetElement(this._tableRowColumnData(rowNum, colNum), 30000),
|
.GetElement(this._tableRowColumnData(rowNum, colNum), 30000)
|
||||||
{
|
.invoke("text");
|
||||||
errorMsg: "Table is not populated",
|
|
||||||
timeout: 30000,
|
|
||||||
interval: 2000,
|
|
||||||
},
|
|
||||||
).then($cellVal => cy.wrap($cellVal).invoke("text"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public AssertTableRowImageColumnIsLoaded(
|
public AssertTableRowImageColumnIsLoaded(
|
||||||
|
|
@ -233,11 +224,24 @@ export class Table {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectTableRow(rowIndex: number, columnIndex = 0) {
|
public SelectTableRow(rowIndex: number, columnIndex = 0, select = true) {
|
||||||
//rowIndex - 0 for 1st row
|
//rowIndex - 0 for 1st row
|
||||||
cy.get(this._tableRow(rowIndex, columnIndex))
|
this.agHelper
|
||||||
.first()
|
.GetElement(this._tableRow(rowIndex, columnIndex))
|
||||||
.trigger("click", { force: true });
|
.parent("div")
|
||||||
|
.invoke("attr", "class")
|
||||||
|
.then(($classes: any) => {
|
||||||
|
if (
|
||||||
|
(select && !$classes?.includes("selected-row")) ||
|
||||||
|
(!select && $classes?.includes("selected-row"))
|
||||||
|
)
|
||||||
|
this.agHelper.GetNClick(
|
||||||
|
this._tableRow(rowIndex, columnIndex),
|
||||||
|
0,
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
this.agHelper.Sleep(); //for select to reflect
|
this.agHelper.Sleep(); //for select to reflect
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -253,7 +257,7 @@ export class Table {
|
||||||
|
|
||||||
public RemoveSearchTextNVerify(cellDataAfterSearchRemoved: string) {
|
public RemoveSearchTextNVerify(cellDataAfterSearchRemoved: string) {
|
||||||
this.agHelper.GetNClick(this._searchBoxCross);
|
this.agHelper.GetNClick(this._searchBoxCross);
|
||||||
this.ReadTableRowColumnData(0, 0).then((aftSearchRemoved) => {
|
this.ReadTableRowColumnData(0, 0).then((aftSearchRemoved: any) => {
|
||||||
expect(aftSearchRemoved).to.eq(cellDataAfterSearchRemoved);
|
expect(aftSearchRemoved).to.eq(cellDataAfterSearchRemoved);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -300,7 +304,7 @@ export class Table {
|
||||||
else this.agHelper.GetNClick(this._clearAllFilter);
|
else this.agHelper.GetNClick(this._clearAllFilter);
|
||||||
|
|
||||||
if (toClose) this.CloseFilter();
|
if (toClose) this.CloseFilter();
|
||||||
this.ReadTableRowColumnData(0, 0).then((aftFilterRemoved) => {
|
this.ReadTableRowColumnData(0, 0).then((aftFilterRemoved: any) => {
|
||||||
expect(aftFilterRemoved).to.eq(cellDataAfterFilterRemoved);
|
expect(aftFilterRemoved).to.eq(cellDataAfterFilterRemoved);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -240,13 +240,15 @@ Cypress.Commands.add("widgetText", (text, inputcss, innercss) => {
|
||||||
cy.contains(innercss, text);
|
cy.contains(innercss, text);
|
||||||
});
|
});
|
||||||
|
|
||||||
Cypress.Commands.add("verifyUpdatedWidgetName", (text) => {
|
Cypress.Commands.add("verifyUpdatedWidgetName", (text, txtToVerify) => {
|
||||||
cy.get(commonlocators.editWidgetName)
|
cy.get(commonlocators.editWidgetName)
|
||||||
.click({ force: true })
|
.click({ force: true })
|
||||||
.type(text, { delay: 300 })
|
.type(text)
|
||||||
.type("{enter}");
|
.type("{enter}");
|
||||||
cy.wait(500);
|
cy.assertPageSave();
|
||||||
cy.get(".t--widget-name").contains(text);
|
if (!txtToVerify) cy.get(".editable-text-container").contains(text);
|
||||||
|
else cy.get(".editable-text-container").contains(txtToVerify);
|
||||||
|
cy.wait(2000); //for widget name to reflect!
|
||||||
});
|
});
|
||||||
|
|
||||||
Cypress.Commands.add("verifyWidgetText", (text, inputcss, innercss) => {
|
Cypress.Commands.add("verifyWidgetText", (text, inputcss, innercss) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user