Skip to content

Commit e222808

Browse files
authored
test(ui5-split-button): migrate tests to cypress (#11797)
1 parent d32842c commit e222808

File tree

2 files changed

+155
-159
lines changed

2 files changed

+155
-159
lines changed
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
import SplitButton from "../../src/SplitButton.js";
2+
import Menu from "../../src/Menu.js";
3+
import MenuItem from "../../src/MenuItem.js";
4+
5+
describe("Split Button general interaction", () => {
6+
it("tests inner buttons design", () => {
7+
cy.mount(<SplitButton design="Positive">Positive</SplitButton>);
8+
9+
cy.get("[ui5-split-button]")
10+
.as("splitButton");
11+
12+
cy.get<SplitButton>("@splitButton")
13+
.shadow()
14+
.find(".ui5-split-text-button")
15+
.should("have.attr", "design", "Positive");
16+
17+
cy.get<SplitButton>("@splitButton")
18+
.shadow()
19+
.find(".ui5-split-arrow-button")
20+
.should("have.attr", "design", "Positive");
21+
});
22+
23+
it("tests text button 'click' event", () => {
24+
cy.mount(<SplitButton onClick={cy.stub().as("clicked")} onArrowClick={cy.stub().as("arrowClicked")}>Default</SplitButton>);
25+
26+
cy.get("[ui5-split-button]")
27+
.as("splitButton");
28+
29+
cy.get<SplitButton>("@splitButton")
30+
.shadow()
31+
.find(".ui5-split-text-button")
32+
.as("textButton");
33+
34+
cy.get("@textButton")
35+
.realClick();
36+
37+
cy.get("@textButton")
38+
.should("be.focused");
39+
40+
cy.realPress("Space");
41+
42+
cy.get("@clicked")
43+
.should("have.been.calledTwice");
44+
45+
cy.realPress("Enter");
46+
47+
cy.get("@clicked")
48+
.should("have.been.calledThrice");
49+
50+
cy.get("@arrowClicked")
51+
.should("have.not.been.called");
52+
});
53+
54+
it("tests arrow button 'arrow-click' event (arrow down)", () => {
55+
cy.mount(<SplitButton onClick={cy.stub().as("clicked")} onArrowClick={cy.stub().as("arrowClicked")}>Default</SplitButton>);
56+
57+
cy.get("[ui5-split-button]")
58+
.as("splitButton");
59+
60+
cy.get<SplitButton>("@splitButton")
61+
.shadow()
62+
.find(".ui5-split-arrow-button")
63+
.realClick();
64+
65+
cy.get<SplitButton>("@splitButton")
66+
.realPress("ArrowDown");
67+
68+
cy.get("@arrowClicked")
69+
.should("have.been.calledTwice");
70+
71+
cy.get<SplitButton>("@splitButton")
72+
.realPress("ArrowUp");
73+
74+
cy.get("@arrowClicked")
75+
.should("have.been.calledThrice");
76+
77+
cy.get("@clicked")
78+
.should("have.not.been.called");
79+
});
80+
81+
it("tests arrow button 'arrow-click' event (alt + arrow down / arrow up)", () => {
82+
cy.mount(<SplitButton onClick={cy.stub().as("clicked")} onArrowClick={cy.stub().as("arrowClicked")}>Default</SplitButton>);
83+
84+
cy.get("[ui5-split-button]")
85+
.as("splitButton");
86+
87+
cy.get<SplitButton>("@splitButton")
88+
.shadow()
89+
.find(".ui5-split-arrow-button")
90+
.realClick();
91+
92+
cy.get<SplitButton>("@splitButton")
93+
.realPress(["Alt", "ArrowDown"]);
94+
95+
cy.get<SplitButton>("@splitButton")
96+
.realPress(["Alt", "ArrowUp"]);
97+
98+
cy.get("@arrowClicked")
99+
.should("have.been.calledThrice");
100+
101+
cy.get("@clicked")
102+
.should("have.not.been.called");
103+
});
104+
105+
it("tests arrow button 'arrow-click' event (F4)", () => {
106+
cy.mount(<SplitButton onClick={cy.stub().as("clicked")} onArrowClick={cy.stub().as("arrowClicked")}>Default</SplitButton>);
107+
108+
cy.get("[ui5-split-button]")
109+
.as("splitButton");
110+
111+
cy.get<SplitButton>("@splitButton")
112+
.shadow()
113+
.find(".ui5-split-arrow-button")
114+
.realClick();
115+
116+
cy.get<SplitButton>("@splitButton")
117+
.realPress("F4");
118+
119+
cy.get("@arrowClicked")
120+
.should("have.been.calledTwice");
121+
122+
cy.get("@clicked")
123+
.should("have.not.been.called");
124+
});
125+
126+
it("tests arrow button aria attributes", () => {
127+
cy.mount(
128+
<>
129+
<SplitButton >openMenu</SplitButton>
130+
<Menu>
131+
<MenuItem text="New File" icon="add-document"></MenuItem>
132+
</Menu>
133+
</>
134+
)
135+
136+
cy.get("[ui5-split-button]")
137+
.as("splitButton");
138+
139+
cy.get<SplitButton>("@splitButton")
140+
.shadow()
141+
.find(".ui5-split-arrow-button")
142+
.as("arrowButton");
143+
144+
cy.get("@arrowButton")
145+
.should("have.attr", "tooltip", "Open Menu");
146+
147+
cy.get("@arrowButton")
148+
.shadow()
149+
.find("button")
150+
.should("have.attr", "aria-haspopup", "menu");
151+
});
152+
});
153+
154+
155+

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

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

0 commit comments

Comments
 (0)