diff --git a/packages/fiori/cypress/specs/ShellBar.cy.tsx b/packages/fiori/cypress/specs/ShellBar.cy.tsx index cc1a64597b7a..efe68b0da3d6 100644 --- a/packages/fiori/cypress/specs/ShellBar.cy.tsx +++ b/packages/fiori/cypress/specs/ShellBar.cy.tsx @@ -611,6 +611,367 @@ describe("Events", () => { cy.get("@logoClickSmall") .should("have.been.calledOnce"); }); + + describe("Big screen", () => { + beforeEach(() => { + cy.viewport(1920, 1680); + }); + + it("tests opening of menu", () => { + cy.mount( + + Menu Item 1 + Menu Item 2 + + + ); + + cy.get("[ui5-shellbar]") + .shadow() + .find(".ui5-shellbar-menu-button") + .click(); + + cy.get("[ui5-shellbar]") + .shadow() + .find(".ui5-shellbar-menu-popover") + .should("have.prop", "open", true); + }); + + it("tests notificationsClick event", () => { + cy.mount( + + + + ); + + cy.get("[ui5-shellbar]") + .as("shellbar"); + + cy.get("@shellbar") + .then(shellbar => { + shellbar.get(0).addEventListener("ui5-notifications-click", cy.stub().as("notificationsClick")); + }); + + cy.get("@shellbar") + .shadow() + .find(".ui5-shellbar-bell-button") + .click(); + + cy.get("@notificationsClick") + .should("have.been.calledOnce"); + }); + + it("tests profileClick event", () => { + cy.mount( + + + + + + + ); + + cy.get("[ui5-shellbar]") + .as("shellbar"); + + cy.get("@shellbar") + .then(shellbar => { + shellbar.get(0).addEventListener("ui5-profile-click", cy.stub().as("profileClick")); + }); + + cy.get("@shellbar") + .shadow() + .find("[data-profile-btn]") + .click(); + + cy.get("@profileClick") + .should("have.been.calledOnce"); + }); + + it("tests productSwitchClick event", () => { + cy.mount( + + + + ); + + cy.get("[ui5-shellbar]") + .as("shellbar"); + + cy.get("@shellbar") + .then(shellbar => { + shellbar.get(0).addEventListener("ui5-product-switch-click", cy.stub().as("productSwitchClick")); + }); + + cy.get("@shellbar") + .shadow() + .find(".ui5-shellbar-button-product-switch") + .click(); + + cy.get("@productSwitchClick") + .should("have.been.calledOnce"); + }); + + it("tests logoClick event", () => { + cy.mount( + + + + ); + + cy.get("[ui5-shellbar]") + .as("shellbar"); + + cy.get("@shellbar") + .then(shellbar => { + shellbar.get(0).addEventListener("ui5-logo-click", cy.stub().as("logoClick")); + }); + + cy.get("@shellbar") + .shadow() + .find(".ui5-shellbar-logo") + .click(); + + cy.get("@logoClick") + .should("have.been.calledOnce"); + }); + + it("tests search-button-click event", () => { + cy.viewport(870, 1680); + + cy.mount( + + + + + ); + + cy.get("[ui5-shellbar]") + .as("shellbar"); + + cy.get("@shellbar") + .then(shellbar => { + shellbar.get(0).addEventListener("ui5-search-button-click", (e) => { + e.preventDefault(); + cy.stub().as("searchButtonClick")(); + }); + }); + + cy.get("@shellbar").should("have.prop", "showSearchField", false); + + cy.get("@shellbar") + .shadow() + .find(".ui5-shellbar-search-button") + .click(); + + cy.get("@shellbar").should("have.prop", "showSearchField", false); + + cy.get("@searchButtonClick") + .should("have.been.calledOnce"); + }); + + it("tests menuItemClick event", () => { + cy.mount( + + Application 1 + Application 2 + + + ); + + cy.get("[ui5-li][slot='menuItems']").each(($item) => { + const item = $item[0]; + item.addEventListener("click", cy.stub().as(`menuItemClick${item.getAttribute("data-key")}`)); + }); + + cy.get("[ui5-shellbar]") + .shadow() + .find(".ui5-shellbar-menu-button") + .click(); + + cy.get("[ui5-li][slot='menuItems']").first().click(); + + cy.get("@menuItemClickkey1") + .should("have.been.calledOnce"); + + cy.get("[ui5-shellbar]") + .shadow() + .find(".ui5-shellbar-menu-button") + .click(); + + cy.get("[ui5-li][slot='menuItems']").eq(1).click(); + + cy.get("@menuItemClickkey2") + .should("have.been.calledOnce"); + }); + + it("tests if searchfield toggles when altering the showSearchField property", () => { + cy.mount( + + + + + ); + + cy.get("[ui5-shellbar]").should("have.prop", "showSearchField", true); + + cy.get("[ui5-shellbar]").invoke("prop", "showSearchField", false); + + cy.get("[ui5-shellbar]").should("have.prop", "showSearchField", false); + + cy.get("[ui5-shellbar]").invoke("prop", "showSearchField", true); + cy.get("[ui5-shellbar]").should("have.prop", "showSearchField", true); + }); + }); + + describe("Small screen", () => { + beforeEach(() => { + cy.viewport(510, 1680); + }); + + it("tests logoClick event", () => { + cy.mount( + + + + ); + + cy.get("[ui5-shellbar]") + .as("shellbar"); + + cy.get("@shellbar") + .then(shellbar => { + shellbar.get(0).addEventListener("ui5-logo-click", cy.stub().as("logoClick")); + }); + + cy.get("@shellbar") + .shadow() + .find(".ui5-shellbar-logo") + .click(); + + cy.get("@logoClick") + .should("have.been.calledOnce"); + }); + + it("tests opening of menu", () => { + cy.mount( + + Menu Item 1 + Menu Item 2 + + + ); + + cy.get("[ui5-shellbar]") + .shadow() + .find(".ui5-shellbar-menu-button") + .click(); + + cy.get("[ui5-shellbar]") + .shadow() + .find(".ui5-shellbar-menu-popover") + .should("have.prop", "open", true); + }); + + it("tests profileClick event", () => { + cy.mount( + + + + + + + ); + + cy.get("[ui5-shellbar]") + .as("shellbar"); + + cy.get("@shellbar") + .then(shellbar => { + shellbar.get(0).addEventListener("ui5-profile-click", cy.stub().as("profileClick")); + }); + + cy.get("@shellbar") + .shadow() + .find("[data-profile-btn]") + .click(); + + cy.get("@profileClick") + .should("have.been.calledOnce"); + }); + + it("tests productSwitchClick event", () => { + cy.mount( + + + + ); + + cy.get("[ui5-shellbar]") + .as("shellbar"); + + cy.get("@shellbar") + .then(shellbar => { + shellbar.get(0).addEventListener("ui5-product-switch-click", cy.stub().as("productSwitchClick")); + }); + + cy.get("@shellbar") + .shadow() + .find(".ui5-shellbar-button-product-switch") + .click(); + + cy.get("@productSwitchClick") + .should("have.been.calledOnce"); + }); + + it("tests preventDefault of click on a button with default behavior prevented", () => { + cy.mount( + + + + + +