Skip to content

Commit 1435e18

Browse files
authored
chore(ui5-responsive-popover): migrate wdio tests to cypress (#11701)
1 parent 8c3cba9 commit 1435e18

File tree

2 files changed

+132
-87
lines changed

2 files changed

+132
-87
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
import Button from "../../src/Button.js";
2+
import ResponsivePopover from "../../src/ResponsivePopover.js";
3+
4+
describe("ResponsivePopover general interaction", () => {
5+
it("header and footer are displayed by default", () => {
6+
cy.mount(
7+
<>
8+
<Button id="btnOpen" />
9+
<ResponsivePopover opener={"btnOpen"}>
10+
<div slot="header" />
11+
<div slot="footer" />
12+
</ResponsivePopover>
13+
</>
14+
);
15+
16+
cy.get("[ui5-responsive-popover]").invoke("attr", "open", true);
17+
cy.get<ResponsivePopover>("[ui5-responsive-popover]").ui5ResponsivePopoverOpened();
18+
19+
cy.get("[ui5-responsive-popover]")
20+
.shadow()
21+
.find(".ui5-popup-header-root")
22+
.should("exist");
23+
24+
cy.get("[ui5-responsive-popover]")
25+
.shadow()
26+
.find(".ui5-popup-footer-root")
27+
.should("exist");
28+
});
29+
30+
it("header and footer are hidden on desktop", () => {
31+
cy.mount(
32+
<>
33+
<Button id="btnOpen3" />
34+
<ResponsivePopover contentOnlyOnDesktop={true} opener="btnOpen3">
35+
<div slot="header" />
36+
</ResponsivePopover>
37+
</>
38+
);
39+
40+
cy.get("[ui5-responsive-popover]").invoke("attr", "open", true);
41+
42+
cy.get<ResponsivePopover>("[ui5-responsive-popover]").ui5ResponsivePopoverOpened();
43+
cy.get("[ui5-responsive-popover]").shadow().find(".ui5-popup-header-root").should("not.exist");
44+
});
45+
46+
it("Initial focus NOT prevented", () => {
47+
cy.mount(
48+
<>
49+
<Button id="btnInitialFocus" />
50+
<ResponsivePopover opener={"btnInitialFocus"} />
51+
</>
52+
);
53+
54+
cy.get("[ui5-responsive-popover]").invoke("attr", "open", true);
55+
cy.get<ResponsivePopover>("[ui5-responsive-popover]").ui5ResponsivePopoverOpened();
56+
57+
cy.get("[ui5-responsive-popover]").should("have.focus");
58+
cy.get("[ui5-button]").should("not.have.focus");
59+
});
60+
61+
it("Initial focus prevented", () => {
62+
cy.mount(
63+
<>
64+
<Button id="btnInitialFocusPrevented" />
65+
<ResponsivePopover preventInitialFocus={true} opener={"btnInitialFocusPrevented"} />
66+
</>
67+
);
68+
69+
cy.get("[ui5-button]").realClick();
70+
71+
cy.get("[ui5-responsive-popover]").invoke("attr", "open", true);
72+
cy.get<ResponsivePopover>("[ui5-responsive-popover]").ui5ResponsivePopoverOpened();
73+
74+
cy.get("[ui5-button]").should("have.focus");
75+
});
76+
77+
it("tests popover toggling with 'open' attribute", () => {
78+
cy.mount(
79+
<>
80+
<Button id="btnInitialFocusPrevented" />
81+
<ResponsivePopover opener={"btnInitialFocusPrevented"} />
82+
</>
83+
);
84+
85+
cy.get("[ui5-responsive-popover]").invoke("attr", "open", true);
86+
cy.get<ResponsivePopover>("[ui5-responsive-popover]").ui5ResponsivePopoverOpened();
87+
88+
cy.get("[ui5-responsive-popover]").invoke("attr", "open", false);
89+
cy.get<ResponsivePopover>("[ui5-responsive-popover]").ui5ResponsivePopoverClosed();
90+
});
91+
});
92+
93+
describe("Acc", () => {
94+
it("tests accessible-role=Dialog", () => {
95+
cy.mount(<ResponsivePopover id="respPopover" />);
96+
97+
cy.get("[ui5-responsive-popover]")
98+
.shadow()
99+
.find(".ui5-popup-root")
100+
.should("have.attr", "role", "dialog")
101+
.and("have.attr", "aria-modal", "true");
102+
});
103+
104+
it("tests accessible-role=AlertDialog", () => {
105+
cy.mount(<ResponsivePopover id="rPAlertRole" accessibleRole="AlertDialog" />);
106+
107+
cy.get("#rPAlertRole")
108+
.shadow()
109+
.find(".ui5-popup-root")
110+
.should("have.attr", "role", "alertdialog")
111+
.and("have.attr", "aria-modal", "true");
112+
});
113+
114+
it("tests none accessible-role", () => {
115+
cy.mount(
116+
<>
117+
<Button id="btnRoleNone" />
118+
<ResponsivePopover id="rPNoneRole" accessibleRole="None" opener={"btnRoleNone"} />
119+
</>
120+
);
121+
122+
cy.get("#rPNoneRole")
123+
.shadow()
124+
.find(".ui5-popup-root")
125+
.should("not.have.attr", "role",)
126+
127+
cy.get("#rPNoneRole")
128+
.shadow()
129+
.find(".ui5-popup-root")
130+
.should("not.have.attr", "aria-modal");
131+
});
132+
});

packages/main/test/specs/ResponsivePopover.spec.js

Lines changed: 0 additions & 87 deletions
This file was deleted.

0 commit comments

Comments
 (0)