test: Theme related tests (#12740)
* Removed unwanted waits * Updated test for fonts * Updated tests with Font and Theme usecases * updated tests * Added new tests and common locators * Added default/update theme tests * grouped tests * Updated Theme tests * updated multiwidget test * updated theme tests * Updated tests * Reordered tests
This commit is contained in:
parent
ba0b58aa8f
commit
7199a329a9
1099
app/client/cypress/fixtures/ThemeAppdsl.json
Normal file
1099
app/client/cypress/fixtures/ThemeAppdsl.json
Normal file
File diff suppressed because it is too large
Load Diff
15
app/client/cypress/fixtures/fontData.json
Normal file
15
app/client/cypress/fixtures/fontData.json
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"dropdownValues": [
|
||||||
|
"System Default",
|
||||||
|
"System Default",
|
||||||
|
"Nunito Sans",
|
||||||
|
"Poppins",
|
||||||
|
"Inter",
|
||||||
|
"Montserrat",
|
||||||
|
"Noto Sans",
|
||||||
|
"Open Sans",
|
||||||
|
"Roboto",
|
||||||
|
"Rubik",
|
||||||
|
"Ubuntu"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,121 @@
|
||||||
|
const testdata = require("../../../../fixtures/testdata.json");
|
||||||
|
const apiwidget = require("../../../../locators/apiWidgetslocator.json");
|
||||||
|
const widgetsPage = require("../../../../locators/Widgets.json");
|
||||||
|
const explorer = require("../../../../locators/explorerlocators.json");
|
||||||
|
const commonlocators = require("../../../../locators/commonlocators.json");
|
||||||
|
const formWidgetsPage = require("../../../../locators/FormWidgets.json");
|
||||||
|
const publish = require("../../../../locators/publishWidgetspage.json");
|
||||||
|
const themelocator = require("../../../../locators/ThemeLocators.json");
|
||||||
|
|
||||||
|
let themeBackgroudColor;
|
||||||
|
let themeFont;
|
||||||
|
|
||||||
|
describe("Theme validation for default data", function() {
|
||||||
|
it("Drag and drop form widget and validate Default color/font/shadow/border and list of font validation", function() {
|
||||||
|
cy.log("Login Successful");
|
||||||
|
cy.reload(); // To remove the rename tooltip
|
||||||
|
cy.get(explorer.addWidget).click();
|
||||||
|
cy.get(commonlocators.entityExplorersearch).should("be.visible");
|
||||||
|
cy.get(commonlocators.entityExplorersearch)
|
||||||
|
.clear()
|
||||||
|
.type("form");
|
||||||
|
cy.dragAndDropToCanvas("formwidget", { x: 300, y: 80 });
|
||||||
|
cy.wait("@updateLayout").should(
|
||||||
|
"have.nested.property",
|
||||||
|
"response.body.responseMeta.status",
|
||||||
|
200,
|
||||||
|
);
|
||||||
|
cy.wait(3000);
|
||||||
|
cy.get(themelocator.canvas).click({ force: true });
|
||||||
|
cy.wait(2000);
|
||||||
|
|
||||||
|
//Border validation
|
||||||
|
//cy.contains("Border").click({ force: true });
|
||||||
|
cy.get(themelocator.border).should("have.length", "3");
|
||||||
|
cy.borderMouseover(0, "none");
|
||||||
|
cy.borderMouseover(1, "md");
|
||||||
|
cy.borderMouseover(2, "lg");
|
||||||
|
cy.contains("Border").click({ force: true });
|
||||||
|
|
||||||
|
//Shadow validation
|
||||||
|
//cy.contains("Shadow").click({ force: true });
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.shadowMouseover(0, "none");
|
||||||
|
cy.shadowMouseover(1, "sm");
|
||||||
|
cy.shadowMouseover(2, "md");
|
||||||
|
cy.shadowMouseover(3, "lg");
|
||||||
|
cy.contains("Shadow").click({ force: true });
|
||||||
|
|
||||||
|
//Font
|
||||||
|
//cy.contains("Font").click({ force: true });
|
||||||
|
cy.get("span[name='expand-more']").then(($elem) => {
|
||||||
|
cy.get($elem).click({ force: true });
|
||||||
|
cy.wait(250);
|
||||||
|
|
||||||
|
cy.get(themelocator.fontsSelected)
|
||||||
|
.eq(0)
|
||||||
|
.should("have.text", "System Default");
|
||||||
|
});
|
||||||
|
cy.contains("Font").click({ force: true });
|
||||||
|
|
||||||
|
//Color
|
||||||
|
//cy.contains("Color").click({ force: true });
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.colorMouseover(0, "Primary Color");
|
||||||
|
cy.validateColor(0, "#16a34a");
|
||||||
|
cy.colorMouseover(1, "Background Color");
|
||||||
|
cy.validateColor(1, "#F6F6F6");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Validate Default Theme change across application", function() {
|
||||||
|
cy.get(formWidgetsPage.formD).click();
|
||||||
|
cy.widgetText(
|
||||||
|
"FormTest",
|
||||||
|
formWidgetsPage.formWidget,
|
||||||
|
formWidgetsPage.formInner,
|
||||||
|
);
|
||||||
|
cy.get(widgetsPage.backgroundcolorPickerNew)
|
||||||
|
.first()
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get("[style='background-color: rgb(21, 128, 61);']")
|
||||||
|
.last()
|
||||||
|
.click();
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.get(formWidgetsPage.formD)
|
||||||
|
.should("have.css", "background-color")
|
||||||
|
.and("eq", "rgb(21, 128, 61)");
|
||||||
|
cy.get("#canvas-selection-0").click({ force: true });
|
||||||
|
//Change the Theme
|
||||||
|
cy.get(commonlocators.changeThemeBtn)
|
||||||
|
.should("be.visible")
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get(".cursor-pointer:contains('Current Theme')").click({ force: true });
|
||||||
|
cy.get(".t--theme-card main > main")
|
||||||
|
.first()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((CurrentBackgroudColor) => {
|
||||||
|
cy.get(".bp3-button:contains('Submit')")
|
||||||
|
.last()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((selectedBackgroudColor) => {
|
||||||
|
expect(CurrentBackgroudColor).to.equal(selectedBackgroudColor);
|
||||||
|
themeBackgroudColor = CurrentBackgroudColor;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Publish the App and validate Default Theme across the app", function() {
|
||||||
|
cy.PublishtheApp();
|
||||||
|
cy.get(".bp3-button:contains('Submit')")
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((CurrentBackgroudColor) => {
|
||||||
|
cy.get(".bp3-button:contains('Edit App')")
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((selectedBackgroudColor) => {
|
||||||
|
expect(CurrentBackgroudColor).to.equal(selectedBackgroudColor);
|
||||||
|
expect(CurrentBackgroudColor).to.equal(themeBackgroudColor);
|
||||||
|
expect(selectedBackgroudColor).to.equal(themeBackgroudColor);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,181 @@
|
||||||
|
const commonlocators = require("../../../../locators/commonlocators.json");
|
||||||
|
const dsl = require("../../../../fixtures/ThemeAppdsl.json");
|
||||||
|
const widgetsPage = require("../../../../locators/Widgets.json");
|
||||||
|
const testdata = require("../../../../fixtures/testdata.json");
|
||||||
|
const apiwidget = require("../../../../locators/apiWidgetslocator.json");
|
||||||
|
const explorer = require("../../../../locators/explorerlocators.json");
|
||||||
|
const formWidgetsPage = require("../../../../locators/FormWidgets.json");
|
||||||
|
const publish = require("../../../../locators/publishWidgetspage.json");
|
||||||
|
const themelocator = require("../../../../locators/ThemeLocators.json");
|
||||||
|
|
||||||
|
let themeBackgroudColor;
|
||||||
|
let themeFont;
|
||||||
|
let themeColour;
|
||||||
|
|
||||||
|
describe("Theme validation usecase for multi-select widget", function() {
|
||||||
|
it("Drag and drop multi-select widget and validate Default font and list of font validation", function() {
|
||||||
|
cy.log("Login Successful");
|
||||||
|
cy.reload(); // To remove the rename tooltip
|
||||||
|
cy.get(explorer.addWidget).click();
|
||||||
|
cy.get(commonlocators.entityExplorersearch).should("be.visible");
|
||||||
|
cy.get(commonlocators.entityExplorersearch)
|
||||||
|
.clear()
|
||||||
|
.type("multiselect");
|
||||||
|
cy.dragAndDropToCanvas("multiselectwidgetv2", { x: 300, y: 80 });
|
||||||
|
cy.wait("@updateLayout").should(
|
||||||
|
"have.nested.property",
|
||||||
|
"response.body.responseMeta.status",
|
||||||
|
200,
|
||||||
|
);
|
||||||
|
cy.wait(3000);
|
||||||
|
cy.get(themelocator.canvas).click({ force: true });
|
||||||
|
cy.wait(2000);
|
||||||
|
|
||||||
|
//Border validation
|
||||||
|
//cy.contains("Border").click({ force: true });
|
||||||
|
cy.get(themelocator.border).should("have.length", "3");
|
||||||
|
cy.borderMouseover(0, "none");
|
||||||
|
cy.borderMouseover(1, "md");
|
||||||
|
cy.borderMouseover(2, "lg");
|
||||||
|
cy.get(themelocator.border)
|
||||||
|
.eq(1)
|
||||||
|
.click({ force: true });
|
||||||
|
cy.wait("@updateTheme").should(
|
||||||
|
"have.nested.property",
|
||||||
|
"response.body.responseMeta.status",
|
||||||
|
200,
|
||||||
|
);
|
||||||
|
cy.wait(5000);
|
||||||
|
cy.contains("Border").click({ force: true });
|
||||||
|
|
||||||
|
//Shadow validation
|
||||||
|
//cy.contains("Shadow").click({ force: true });
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.shadowMouseover(0, "none");
|
||||||
|
cy.shadowMouseover(1, "sm");
|
||||||
|
cy.shadowMouseover(2, "md");
|
||||||
|
cy.shadowMouseover(3, "lg");
|
||||||
|
cy.xpath(themelocator.shadow)
|
||||||
|
.eq(3)
|
||||||
|
.click({ force: true });
|
||||||
|
cy.wait("@updateTheme").should(
|
||||||
|
"have.nested.property",
|
||||||
|
"response.body.responseMeta.status",
|
||||||
|
200,
|
||||||
|
);
|
||||||
|
cy.wait(5000);
|
||||||
|
cy.contains("Shadow").click({ force: true });
|
||||||
|
|
||||||
|
//Font
|
||||||
|
cy.get("span[name='expand-more']").then(($elem) => {
|
||||||
|
cy.get($elem).click({ force: true });
|
||||||
|
cy.wait(250);
|
||||||
|
cy.fixture("fontData").then(function(testdata) {
|
||||||
|
this.testdata = testdata;
|
||||||
|
});
|
||||||
|
|
||||||
|
cy.get(themelocator.fontsSelected)
|
||||||
|
.eq(0)
|
||||||
|
.should("have.text", "System Default");
|
||||||
|
|
||||||
|
cy.get(themelocator.fontsSelected).each(($ele, i) => {
|
||||||
|
//cy.log($ele);
|
||||||
|
expect($ele).to.have.text(this.testdata.dropdownValues[i]);
|
||||||
|
});
|
||||||
|
cy.get(".ads-dropdown-options-wrapper div")
|
||||||
|
.children()
|
||||||
|
.eq(2)
|
||||||
|
.then(($childElem) => {
|
||||||
|
cy.get($childElem).click({ force: true });
|
||||||
|
cy.get(".t--draggable-multiselectwidgetv2:contains('more')").should(
|
||||||
|
"have.css",
|
||||||
|
"font-family",
|
||||||
|
$childElem
|
||||||
|
.children()
|
||||||
|
.last()
|
||||||
|
.text(),
|
||||||
|
);
|
||||||
|
themeFont = $childElem
|
||||||
|
.children()
|
||||||
|
.last()
|
||||||
|
.text();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
cy.contains("Font").click({ force: true });
|
||||||
|
|
||||||
|
//Color
|
||||||
|
cy.wait(3000);
|
||||||
|
cy.get(themelocator.color)
|
||||||
|
.eq(0)
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get(themelocator.inputColor).clear();
|
||||||
|
cy.get(themelocator.inputColor).type("purple");
|
||||||
|
cy.get(themelocator.inputColor).should("have.value", "purple");
|
||||||
|
cy.get(themelocator.color)
|
||||||
|
.eq(1)
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get(themelocator.inputColor).clear();
|
||||||
|
cy.get(themelocator.inputColor).type("brown");
|
||||||
|
cy.get(themelocator.inputColor).should("have.value", "brown");
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.contains("Color").click({ force: true });
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Publish the App and validate Font across the app", function() {
|
||||||
|
cy.PublishtheApp();
|
||||||
|
cy.get(".rc-select-selection-item > .rc-select-selection-item-content")
|
||||||
|
.first()
|
||||||
|
.should("have.css", "font-family", themeFont);
|
||||||
|
cy.get(".rc-select-selection-item > .rc-select-selection-item-content")
|
||||||
|
.last()
|
||||||
|
.should("have.css", "font-family", themeFont);
|
||||||
|
cy.get(".bp3-button:contains('Edit App')").should(
|
||||||
|
"have.css",
|
||||||
|
"font-family",
|
||||||
|
themeFont,
|
||||||
|
);
|
||||||
|
cy.get(".bp3-button:contains('Share')").should(
|
||||||
|
"have.css",
|
||||||
|
"font-family",
|
||||||
|
themeFont,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Validate Default Theme change across application", function() {
|
||||||
|
cy.goToEditFromPublish();
|
||||||
|
cy.get("#canvas-selection-0").click({ force: true });
|
||||||
|
//Change the Theme
|
||||||
|
cy.get(commonlocators.changeThemeBtn)
|
||||||
|
.should("be.visible")
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get(themelocator.currentTheme).click({ force: true });
|
||||||
|
cy.get(".t--theme-card main > main")
|
||||||
|
.first()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((CurrentBackgroudColor) => {
|
||||||
|
cy.get(".t--draggable-multiselectwidgetv2:contains('more')")
|
||||||
|
.last()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((selectedBackgroudColor) => {
|
||||||
|
expect("rgba(0, 0, 0, 0)").to.equal(selectedBackgroudColor);
|
||||||
|
themeBackgroudColor = CurrentBackgroudColor;
|
||||||
|
themeColour = selectedBackgroudColor;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Publish the App and validate Default Theme across the app", function() {
|
||||||
|
cy.PublishtheApp();
|
||||||
|
cy.get(".rc-select-selection-item > .rc-select-selection-item-content")
|
||||||
|
.first()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((CurrentBackgroudColor) => {
|
||||||
|
cy.get(".bp3-button:contains('Edit App')")
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((selectedBackgroudColor) => {
|
||||||
|
expect(CurrentBackgroudColor).to.equal(themeColour);
|
||||||
|
expect(selectedBackgroudColor).to.equal(themeBackgroudColor);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,335 @@
|
||||||
|
const testdata = require("../../../../fixtures/testdata.json");
|
||||||
|
const apiwidget = require("../../../../locators/apiWidgetslocator.json");
|
||||||
|
const widgetsPage = require("../../../../locators/Widgets.json");
|
||||||
|
const explorer = require("../../../../locators/explorerlocators.json");
|
||||||
|
const commonlocators = require("../../../../locators/commonlocators.json");
|
||||||
|
const formWidgetsPage = require("../../../../locators/FormWidgets.json");
|
||||||
|
const publish = require("../../../../locators/publishWidgetspage.json");
|
||||||
|
const themelocator = require("../../../../locators/ThemeLocators.json");
|
||||||
|
|
||||||
|
let themeBackgroudColor;
|
||||||
|
let themeFont;
|
||||||
|
|
||||||
|
describe("Theme validation usecases", function() {
|
||||||
|
it("Drag and drop form widget and validate Default font and list of font validation", function() {
|
||||||
|
cy.log("Login Successful");
|
||||||
|
cy.reload(); // To remove the rename tooltip
|
||||||
|
cy.get(explorer.addWidget).click();
|
||||||
|
cy.get(commonlocators.entityExplorersearch).should("be.visible");
|
||||||
|
cy.get(commonlocators.entityExplorersearch)
|
||||||
|
.clear()
|
||||||
|
.type("form");
|
||||||
|
cy.dragAndDropToCanvas("formwidget", { x: 300, y: 80 });
|
||||||
|
cy.wait("@updateLayout").should(
|
||||||
|
"have.nested.property",
|
||||||
|
"response.body.responseMeta.status",
|
||||||
|
200,
|
||||||
|
);
|
||||||
|
cy.wait(3000);
|
||||||
|
cy.get(themelocator.canvas).click({ force: true });
|
||||||
|
cy.wait(2000);
|
||||||
|
|
||||||
|
//Border validation
|
||||||
|
//cy.contains("Border").click({ force: true });
|
||||||
|
cy.get(themelocator.border).should("have.length", "3");
|
||||||
|
cy.borderMouseover(0, "none");
|
||||||
|
cy.borderMouseover(1, "md");
|
||||||
|
cy.borderMouseover(2, "lg");
|
||||||
|
cy.get(themelocator.border)
|
||||||
|
.eq(2)
|
||||||
|
.click({ force: true });
|
||||||
|
cy.wait("@updateTheme").should(
|
||||||
|
"have.nested.property",
|
||||||
|
"response.body.responseMeta.status",
|
||||||
|
200,
|
||||||
|
);
|
||||||
|
cy.wait(5000);
|
||||||
|
cy.contains("Border").click({ force: true });
|
||||||
|
|
||||||
|
//Shadow validation
|
||||||
|
//cy.contains("Shadow").click({ force: true });
|
||||||
|
cy.shadowMouseover(0, "none");
|
||||||
|
cy.shadowMouseover(1, "sm");
|
||||||
|
cy.shadowMouseover(2, "md");
|
||||||
|
cy.shadowMouseover(3, "lg");
|
||||||
|
cy.xpath(themelocator.shadow)
|
||||||
|
.eq(3)
|
||||||
|
.click({ force: true });
|
||||||
|
cy.wait("@updateTheme").should(
|
||||||
|
"have.nested.property",
|
||||||
|
"response.body.responseMeta.status",
|
||||||
|
200,
|
||||||
|
);
|
||||||
|
cy.wait(5000);
|
||||||
|
cy.contains("Shadow").click({ force: true });
|
||||||
|
|
||||||
|
//Font
|
||||||
|
cy.get("span[name='expand-more']").then(($elem) => {
|
||||||
|
cy.get($elem).click({ force: true });
|
||||||
|
cy.wait(250);
|
||||||
|
cy.fixture("fontData").then(function(testdata) {
|
||||||
|
this.testdata = testdata;
|
||||||
|
});
|
||||||
|
|
||||||
|
cy.get(themelocator.fontsSelected)
|
||||||
|
.eq(0)
|
||||||
|
.should("have.text", "System Default");
|
||||||
|
|
||||||
|
cy.get(themelocator.fontsSelected).each(($ele, i) => {
|
||||||
|
//cy.log($ele);
|
||||||
|
expect($ele).to.have.text(this.testdata.dropdownValues[i]);
|
||||||
|
});
|
||||||
|
cy.get(".ads-dropdown-options-wrapper div")
|
||||||
|
.children()
|
||||||
|
.eq(2)
|
||||||
|
.then(($childElem) => {
|
||||||
|
cy.get($childElem).click({ force: true });
|
||||||
|
cy.get(
|
||||||
|
".t--draggable-formbuttonwidget button :contains('Submit')",
|
||||||
|
).should(
|
||||||
|
"have.css",
|
||||||
|
"font-family",
|
||||||
|
$childElem
|
||||||
|
.children()
|
||||||
|
.last()
|
||||||
|
.text(),
|
||||||
|
);
|
||||||
|
themeFont = $childElem
|
||||||
|
.children()
|
||||||
|
.last()
|
||||||
|
.text();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
cy.contains("Font").click({ force: true });
|
||||||
|
|
||||||
|
//Color
|
||||||
|
//cy.contains("Color").click({ force: true });
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.colorMouseover(0, "Primary Color");
|
||||||
|
cy.validateColor(0, "#16a34a");
|
||||||
|
cy.colorMouseover(1, "Background Color");
|
||||||
|
cy.validateColor(1, "#F6F6F6");
|
||||||
|
|
||||||
|
cy.get(themelocator.inputColor).click({ force: true });
|
||||||
|
cy.chooseColor(0, themelocator.greenColor);
|
||||||
|
|
||||||
|
cy.get(themelocator.inputColor).should("have.value", "#15803d");
|
||||||
|
cy.get(themelocator.inputColor).clear({ force: true });
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.get(themelocator.inputColor).type("red");
|
||||||
|
cy.get(themelocator.inputColor).should("have.value", "red");
|
||||||
|
cy.wait(2000);
|
||||||
|
|
||||||
|
cy.get(themelocator.inputColor)
|
||||||
|
.eq(0)
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get(themelocator.inputColor).click({ force: true });
|
||||||
|
cy.get('[data-testid="color-picker"]')
|
||||||
|
.first()
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get("[style='background-color: rgb(21, 128, 61);']")
|
||||||
|
.last()
|
||||||
|
.click();
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.get(themelocator.inputColor).should("have.value", "#15803d");
|
||||||
|
cy.get(themelocator.inputColor).clear({ force: true });
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.get(themelocator.inputColor).type("Black");
|
||||||
|
cy.get(themelocator.inputColor).should("have.value", "Black");
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.contains("Color").click({ force: true });
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Publish the App and validate Font across the app", function() {
|
||||||
|
cy.PublishtheApp();
|
||||||
|
cy.get(".bp3-button:contains('Submit')").should(
|
||||||
|
"have.css",
|
||||||
|
"font-family",
|
||||||
|
themeFont,
|
||||||
|
);
|
||||||
|
cy.get(".bp3-button:contains('Edit App')").should(
|
||||||
|
"have.css",
|
||||||
|
"font-family",
|
||||||
|
themeFont,
|
||||||
|
);
|
||||||
|
cy.get(".bp3-button:contains('Share')").should(
|
||||||
|
"have.css",
|
||||||
|
"font-family",
|
||||||
|
themeFont,
|
||||||
|
);
|
||||||
|
cy.get(".bp3-button:contains('Reset')").should(
|
||||||
|
"have.css",
|
||||||
|
"font-family",
|
||||||
|
themeFont,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Validate Default Theme change across application", function() {
|
||||||
|
cy.goToEditFromPublish();
|
||||||
|
cy.get(formWidgetsPage.formD).click();
|
||||||
|
cy.widgetText(
|
||||||
|
"FormTest",
|
||||||
|
formWidgetsPage.formWidget,
|
||||||
|
formWidgetsPage.formInner,
|
||||||
|
);
|
||||||
|
cy.get(widgetsPage.backgroundcolorPickerNew)
|
||||||
|
.first()
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get("[style='background-color: rgb(21, 128, 61);']")
|
||||||
|
.last()
|
||||||
|
.click();
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.get(formWidgetsPage.formD)
|
||||||
|
.should("have.css", "background-color")
|
||||||
|
.and("eq", "rgb(21, 128, 61)");
|
||||||
|
cy.get("#canvas-selection-0").click({ force: true });
|
||||||
|
//Change the Theme
|
||||||
|
cy.get(commonlocators.changeThemeBtn)
|
||||||
|
.should("be.visible")
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get(themelocator.currentTheme).click({ force: true });
|
||||||
|
cy.get(".t--theme-card main > main")
|
||||||
|
.first()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((CurrentBackgroudColor) => {
|
||||||
|
cy.get(".bp3-button:contains('Submit')")
|
||||||
|
.last()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((selectedBackgroudColor) => {
|
||||||
|
expect(CurrentBackgroudColor).to.equal(selectedBackgroudColor);
|
||||||
|
themeBackgroudColor = CurrentBackgroudColor;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Publish the App and validate Default Theme across the app", function() {
|
||||||
|
cy.PublishtheApp();
|
||||||
|
/* Bug Form backgroud colour reset in Publish mode
|
||||||
|
cy.get(formWidgetsPage.formD)
|
||||||
|
.should("have.css", "background-color")
|
||||||
|
.and("eq", "rgb(21, 128, 61)");
|
||||||
|
*/
|
||||||
|
cy.get(".bp3-button:contains('Submit')")
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((CurrentBackgroudColor) => {
|
||||||
|
cy.get(".bp3-button:contains('Edit App')")
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((selectedBackgroudColor) => {
|
||||||
|
expect(CurrentBackgroudColor).to.equal(selectedBackgroudColor);
|
||||||
|
expect(CurrentBackgroudColor).to.equal(themeBackgroudColor);
|
||||||
|
expect(selectedBackgroudColor).to.equal(themeBackgroudColor);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Validate Theme change across application", function() {
|
||||||
|
cy.goToEditFromPublish();
|
||||||
|
cy.get(formWidgetsPage.formD).click();
|
||||||
|
cy.widgetText(
|
||||||
|
"FormTest",
|
||||||
|
formWidgetsPage.formWidget,
|
||||||
|
formWidgetsPage.formInner,
|
||||||
|
);
|
||||||
|
cy.get(widgetsPage.backgroundcolorPickerNew)
|
||||||
|
.first()
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get("[style='background-color: rgb(21, 128, 61);']")
|
||||||
|
.last()
|
||||||
|
.click();
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.get(formWidgetsPage.formD)
|
||||||
|
.should("have.css", "background-color")
|
||||||
|
.and("eq", "rgb(21, 128, 61)");
|
||||||
|
|
||||||
|
cy.get("#canvas-selection-0").click({ force: true });
|
||||||
|
|
||||||
|
//Change the Theme
|
||||||
|
cy.get(commonlocators.changeThemeBtn)
|
||||||
|
.should("be.visible")
|
||||||
|
.click({ force: true });
|
||||||
|
// select a theme
|
||||||
|
cy.get(commonlocators.themeCard)
|
||||||
|
.last()
|
||||||
|
.click({ force: true });
|
||||||
|
|
||||||
|
// check for alert
|
||||||
|
cy.get(`${commonlocators.themeCard}`)
|
||||||
|
.last()
|
||||||
|
.siblings("div")
|
||||||
|
.first()
|
||||||
|
.invoke("text")
|
||||||
|
.then((text) => {
|
||||||
|
cy.get(commonlocators.toastmsg).contains(`Theme ${text} Applied`);
|
||||||
|
});
|
||||||
|
cy.get(`${commonlocators.themeCard} > main`)
|
||||||
|
.last()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((backgroudColor) => {
|
||||||
|
cy.get(commonlocators.canvas).should(
|
||||||
|
"have.css",
|
||||||
|
"background-color",
|
||||||
|
backgroudColor,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
cy.get(themelocator.currentTheme).click({ force: true });
|
||||||
|
cy.get(".t--theme-card > main")
|
||||||
|
.first()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((backgroudColor) => {
|
||||||
|
cy.get(commonlocators.canvas).should(
|
||||||
|
"have.css",
|
||||||
|
"background-color",
|
||||||
|
backgroudColor,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
cy.get(".t--theme-card main > main")
|
||||||
|
.first()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((CurrentBackgroudColor) => {
|
||||||
|
cy.get(".t--theme-card main > main")
|
||||||
|
.last()
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((selectedBackgroudColor) => {
|
||||||
|
expect(CurrentBackgroudColor).to.equal(selectedBackgroudColor);
|
||||||
|
themeBackgroudColor = CurrentBackgroudColor;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
cy.get(formWidgetsPage.formD).click();
|
||||||
|
cy.widgetText(
|
||||||
|
"FormTest",
|
||||||
|
formWidgetsPage.formWidget,
|
||||||
|
formWidgetsPage.formInner,
|
||||||
|
);
|
||||||
|
cy.get(widgetsPage.backgroundcolorPickerNew)
|
||||||
|
.first()
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get("[style='background-color: rgb(255, 193, 61);']")
|
||||||
|
.last()
|
||||||
|
.click();
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.get(formWidgetsPage.formD)
|
||||||
|
.should("have.css", "background-color")
|
||||||
|
.and("eq", "rgb(255, 193, 61)");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Publish the App and validate Theme across the app", function() {
|
||||||
|
cy.PublishtheApp();
|
||||||
|
//Bug Form backgroud colour reset in Publish mode
|
||||||
|
/*
|
||||||
|
cy.get(formWidgetsPage.formD)
|
||||||
|
.should("have.css", "background-color")
|
||||||
|
.and("eq", "rgb(255, 193, 61)");
|
||||||
|
*/
|
||||||
|
cy.get(".bp3-button:contains('Submit')")
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((CurrentBackgroudColor) => {
|
||||||
|
cy.get(".bp3-button:contains('Edit App')")
|
||||||
|
.invoke("css", "background-color")
|
||||||
|
.then((selectedBackgroudColor) => {
|
||||||
|
expect(CurrentBackgroudColor).to.equal(selectedBackgroudColor);
|
||||||
|
expect(CurrentBackgroudColor).to.equal(themeBackgroudColor);
|
||||||
|
expect(selectedBackgroudColor).to.equal(themeBackgroudColor);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
13
app/client/cypress/locators/ThemeLocators.json
Normal file
13
app/client/cypress/locators/ThemeLocators.json
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"canvas": "#canvas-selection-0",
|
||||||
|
"border": ".t--theme-appBorderRadius",
|
||||||
|
"popover": ".bp3-popover-content",
|
||||||
|
"shadow": "//h3[contains(text(),'Shadow')]/following-sibling::div//button",
|
||||||
|
"color": ".t--property-pane-sidebar .bp3-popover-target .cursor-pointer",
|
||||||
|
"inputColor": ".t--colorpicker-v2-popover input",
|
||||||
|
"colorPicker": "[data-testid='color-picker']",
|
||||||
|
"greenColor": "[style='background-color: rgb(21, 128, 61);']",
|
||||||
|
"fontsSelected": ".leading-normal",
|
||||||
|
"currentTheme": ".cursor-pointer:contains('Current Theme')",
|
||||||
|
"purpleColor": "[style='background-color: rgb(107,114,128);']"
|
||||||
|
}
|
||||||
|
|
@ -36,6 +36,7 @@ import commentsLocators from "../locators/CommentsLocators";
|
||||||
const queryLocators = require("../locators/QueryEditor.json");
|
const queryLocators = require("../locators/QueryEditor.json");
|
||||||
const welcomePage = require("../locators/welcomePage.json");
|
const welcomePage = require("../locators/welcomePage.json");
|
||||||
const publishWidgetspage = require("../locators/publishWidgetspage.json");
|
const publishWidgetspage = require("../locators/publishWidgetspage.json");
|
||||||
|
const themelocator = require("../locators/ThemeLocators.json");
|
||||||
import gitSyncLocators from "../locators/gitSyncLocators";
|
import gitSyncLocators from "../locators/gitSyncLocators";
|
||||||
|
|
||||||
let pageidcopy = " ";
|
let pageidcopy = " ";
|
||||||
|
|
@ -865,6 +866,7 @@ Cypress.Commands.add("startRoutesForDatasource", () => {
|
||||||
Cypress.Commands.add("startServerAndRoutes", () => {
|
Cypress.Commands.add("startServerAndRoutes", () => {
|
||||||
//To update route with intercept after working on alias wrt wait and alias
|
//To update route with intercept after working on alias wrt wait and alias
|
||||||
cy.server();
|
cy.server();
|
||||||
|
cy.route("PUT", "/api/v1/themes/applications/*").as("updateTheme");
|
||||||
cy.route("POST", "/api/v1/datasources/test").as("testDatasource");
|
cy.route("POST", "/api/v1/datasources/test").as("testDatasource");
|
||||||
cy.route("PUT", "/api/v1/datasources/*").as("saveDatasource");
|
cy.route("PUT", "/api/v1/datasources/*").as("saveDatasource");
|
||||||
cy.route("GET", "/api/v1/applications/new").as("applications");
|
cy.route("GET", "/api/v1/applications/new").as("applications");
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import { initLocalstorageRegistry } from "./Objects/Registry";
|
||||||
import "./OrgCommands";
|
import "./OrgCommands";
|
||||||
import "./queryCommands";
|
import "./queryCommands";
|
||||||
import "./widgetCommands";
|
import "./widgetCommands";
|
||||||
|
import "./themeCommands";
|
||||||
import "./AdminSettingsCommands";
|
import "./AdminSettingsCommands";
|
||||||
/// <reference types="cypress-xpath" />
|
/// <reference types="cypress-xpath" />
|
||||||
|
|
||||||
|
|
|
||||||
50
app/client/cypress/support/themeCommands.js
Normal file
50
app/client/cypress/support/themeCommands.js
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
/* eslint-disable cypress/no-unnecessary-waiting */
|
||||||
|
/* eslint-disable cypress/no-assigning-return-values */
|
||||||
|
/* Contains all methods related to Organisation features*/
|
||||||
|
|
||||||
|
require("cy-verify-downloads").addCustomCommand();
|
||||||
|
require("cypress-file-upload");
|
||||||
|
const themelocator = require("../locators/ThemeLocators.json");
|
||||||
|
|
||||||
|
Cypress.Commands.add("borderMouseover", (index, text) => {
|
||||||
|
cy.get(themelocator.border)
|
||||||
|
.eq(index)
|
||||||
|
.trigger("mouseover");
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.get(themelocator.popover).contains(text);
|
||||||
|
});
|
||||||
|
|
||||||
|
Cypress.Commands.add("shadowMouseover", (index, text) => {
|
||||||
|
cy.xpath(themelocator.shadow)
|
||||||
|
.eq(index)
|
||||||
|
.trigger("mouseover");
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.get(themelocator.popover).contains(text);
|
||||||
|
});
|
||||||
|
|
||||||
|
Cypress.Commands.add("colorMouseover", (index, text) => {
|
||||||
|
cy.get(themelocator.color)
|
||||||
|
.eq(index)
|
||||||
|
.trigger("mouseover");
|
||||||
|
cy.wait(2000);
|
||||||
|
cy.get(themelocator.popover).contains(text);
|
||||||
|
});
|
||||||
|
|
||||||
|
Cypress.Commands.add("validateColor", (index, text) => {
|
||||||
|
cy.get(themelocator.color)
|
||||||
|
.eq(index)
|
||||||
|
.click({ force: true });
|
||||||
|
cy.wait(1000);
|
||||||
|
cy.get(themelocator.inputColor).should("have.value", text);
|
||||||
|
cy.wait(1000);
|
||||||
|
});
|
||||||
|
|
||||||
|
Cypress.Commands.add("chooseColor", (index, color) => {
|
||||||
|
cy.get(themelocator.colorPicker)
|
||||||
|
.eq(index)
|
||||||
|
.click({ force: true });
|
||||||
|
cy.get(color)
|
||||||
|
.last()
|
||||||
|
.click();
|
||||||
|
cy.wait(2000);
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue
Block a user