Skip to content

Commit f482393

Browse files
author
Johannes Weber
committed
chore: MAke UAP action button test stable
1 parent 3cd1c65 commit f482393

File tree

2 files changed

+49
-62
lines changed

2 files changed

+49
-62
lines changed

test/functional/board-layout/dnd-page-object.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,4 +174,11 @@ export class DndPageObject extends BasePageObject {
174174
const liveAnnouncements = await this.browser.execute(() => window.__liveAnnouncements ?? []);
175175
return liveAnnouncements;
176176
}
177+
178+
// Clicking on a drag/resize handler performs an animation (show the UAP actions, moving the board item).
179+
// The pause after the click makes the functional test stable.
180+
async handlerClick(selector: string) {
181+
await this.click(selector);
182+
await this.pause(100);
183+
}
177184
}

test/functional/board-layout/uap-action-button-interactions.test.ts

Lines changed: 42 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,12 @@ describe("items reordered with UAP actions", () => {
2323
test(
2424
"item move can be submitted",
2525
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
26-
await page.click(boardItemDragHandle("A"));
27-
await page.waitForVisible(directionButtonRight());
28-
await page.click(directionButtonRight());
29-
await page.click(directionButtonRight());
30-
await page.click(directionButtonDown());
31-
await page.click(directionButtonLeft());
32-
await page.click(directionButtonUp());
26+
await page.handlerClick(boardItemDragHandle("A"));
27+
await page.handlerClick(directionButtonRight());
28+
await page.handlerClick(directionButtonRight());
29+
await page.handlerClick(directionButtonDown());
30+
await page.handlerClick(directionButtonLeft());
31+
await page.handlerClick(directionButtonUp());
3332
await page.keys(["Enter"]);
3433

3534
await expect(page.getGrid()).resolves.toEqual([
@@ -44,12 +43,11 @@ describe("items reordered with UAP actions", () => {
4443
test(
4544
"item move via UAP actions and keyboard can be submitted",
4645
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
47-
await page.mouseDown(boardItemDragHandle("A"));
48-
await page.mouseUp();
49-
await page.click(directionButtonRight());
46+
await page.handlerClick(boardItemDragHandle("A"));
47+
await page.handlerClick(directionButtonRight());
5048
await page.keys(["ArrowRight"]);
5149
await page.keys(["ArrowDown"]);
52-
await page.click(directionButtonLeft());
50+
await page.handlerClick(directionButtonLeft());
5351
await page.keys(["ArrowUp"]);
5452
await page.keys(["Enter"]);
5553

@@ -65,9 +63,8 @@ describe("items reordered with UAP actions", () => {
6563
test(
6664
"item move can be discarded",
6765
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
68-
await page.mouseDown(boardItemDragHandle("A"));
69-
await page.mouseUp();
70-
await page.click(directionButtonRight());
66+
await page.handlerClick(boardItemDragHandle("A"));
67+
await page.handlerClick(directionButtonRight());
7168
await page.keys(["Escape"]);
7269

7370
await expect(page.getGrid()).resolves.toEqual([
@@ -82,9 +79,8 @@ describe("items reordered with UAP actions", () => {
8279
test(
8380
"item keyboard move automatically submits after leaving focus",
8481
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
85-
await page.mouseDown(boardItemDragHandle("A"));
86-
await page.mouseUp();
87-
await page.click(directionButtonRight());
82+
await page.handlerClick(boardItemDragHandle("A"));
83+
await page.handlerClick(directionButtonRight());
8884
await page.keys(["Tab"]);
8985
await expect(page.getGrid()).resolves.toEqual([
9086
["B", "A", "C", "D"],
@@ -100,10 +96,9 @@ describe("items resized with keyboard", () => {
10096
test(
10197
"item resize can be submitted",
10298
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
103-
await page.mouseDown(boardItemResizeHandle("A"));
104-
await page.mouseUp();
105-
await page.click(directionButtonRight());
106-
await page.click(directionButtonDown());
99+
await page.handlerClick(boardItemResizeHandle("A"));
100+
await page.handlerClick(directionButtonRight());
101+
await page.handlerClick(directionButtonDown());
107102
await page.keys(["Enter"]);
108103

109104
await expect(page.getGrid()).resolves.toEqual([
@@ -121,9 +116,8 @@ describe("items resized with keyboard", () => {
121116
test(
122117
"item resize via UAP actions and keyboard can be submitted",
123118
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
124-
await page.mouseDown(boardItemResizeHandle("A"));
125-
await page.mouseUp();
126-
await page.click(directionButtonRight());
119+
await page.handlerClick(boardItemResizeHandle("A"));
120+
await page.handlerClick(directionButtonRight());
127121
await page.keys(["ArrowDown"]);
128122
await page.keys(["Enter"]);
129123

@@ -142,10 +136,9 @@ describe("items resized with keyboard", () => {
142136
test(
143137
"item resize can be discarded",
144138
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
145-
await page.mouseDown(boardItemResizeHandle("A"));
146-
await page.mouseUp();
147-
await page.click(directionButtonRight());
148-
await page.click(directionButtonDown());
139+
await page.handlerClick(boardItemResizeHandle("A"));
140+
await page.handlerClick(directionButtonRight());
141+
await page.handlerClick(directionButtonDown());
149142
await page.keys(["Escape"]);
150143

151144
await expect(page.getGrid()).resolves.toEqual([
@@ -171,10 +164,9 @@ describe("items resized with keyboard", () => {
171164
),
172165
DndPageObject,
173166
async (page) => {
174-
await page.mouseDown(boardItemResizeHandle("X"));
175-
await page.mouseUp();
176-
await page.click(directionButtonLeft());
177-
await page.click(directionButtonUp());
167+
await page.handlerClick(boardItemResizeHandle("X"));
168+
await page.handlerClick(directionButtonLeft());
169+
await page.handlerClick(directionButtonUp());
178170
await page.keys(["Enter"]);
179171
await expect(page.getGrid()).resolves.toEqual([
180172
["X", "X", " ", " "],
@@ -191,18 +183,14 @@ describe("items inserted with keyboard", () => {
191183
test(
192184
"item insert can be submitted",
193185
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
194-
await page.mouseDown(paletteItemDragHandle("I"));
195-
await page.mouseUp();
196-
197-
await page.click(directionButtonLeft());
198-
199-
await page.click(directionButtonDown());
200-
await page.click(directionButtonDown());
201-
202-
await page.click(directionButtonDown());
203-
await page.click(directionButtonDown());
204-
186+
await page.handlerClick(paletteItemDragHandle("I"));
187+
await page.handlerClick(directionButtonLeft());
188+
await page.handlerClick(directionButtonDown());
189+
await page.handlerClick(directionButtonDown());
190+
await page.handlerClick(directionButtonDown());
191+
await page.handlerClick(directionButtonDown());
205192
await page.keys(["Enter"]);
193+
206194
await expect(page.getGrid()).resolves.toEqual([
207195
["A", "B", "C", "D"],
208196
["A", "B", "C", "D"],
@@ -214,19 +202,14 @@ describe("items inserted with keyboard", () => {
214202
}),
215203
);
216204

217-
test.skip(
205+
test(
218206
"item insert with keyboard automatically submits after mouse interaction",
219207
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
220-
// await page.focus(paletteItemDragHandle("I"));
221-
// await page.keys(["Enter"]);
222-
await page.mouseDown(paletteItemDragHandle("I"));
223-
await page.mouseUp();
224-
225-
// await page.keys(["ArrowLeft"]);
226-
await page.click(directionButtonLeft());
208+
await page.handlerClick(paletteItemDragHandle("I"));
209+
await page.handlerClick(directionButtonLeft());
227210

228211
// click anywhere on the page to submit the current transition, for example on another item handle
229-
await page.click(boardItemResizeHandle("A"));
212+
await page.handlerClick(boardItemResizeHandle("A"));
230213

231214
await expect(page.getGrid()).resolves.toEqual([
232215
["A", "B", "C", "I"],
@@ -242,11 +225,10 @@ describe("items inserted with keyboard", () => {
242225
test(
243226
"item insert can be discarded",
244227
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
245-
await page.mouseDown(paletteItemDragHandle("I"));
246-
await page.mouseUp();
228+
await page.handlerClick(paletteItemDragHandle("I"));
247229

248-
await page.click(directionButtonDown());
249-
await page.click(directionButtonDown());
230+
await page.handlerClick(directionButtonDown());
231+
await page.handlerClick(directionButtonDown());
250232
await page.keys(["Escape"]);
251233

252234
await expect(page.getGrid()).resolves.toEqual([
@@ -261,9 +243,8 @@ describe("items inserted with keyboard", () => {
261243
test(
262244
"item to be inserted with keyboard has preview content",
263245
setupTest("/index.html#/dnd/engine-a2h-test", DndPageObject, async (page) => {
264-
await page.mouseDown(paletteItemDragHandle("I"));
265-
await page.mouseUp();
266-
await page.click(directionButtonLeft());
246+
await page.handlerClick(paletteItemDragHandle("I"));
247+
await page.handlerClick(directionButtonLeft());
267248
await expect(page.getText(boardWrapper.find(`[data-item-id="I"]`).toSelector())).resolves.toBe(
268249
"Widget I\n(preview) Empty widget",
269250
);
@@ -274,9 +255,8 @@ describe("items inserted with keyboard", () => {
274255
test(
275256
"item in palette should be hidden when it is acquired by the board",
276257
setupTest("/index.html#/micro-frontend/integration", DndPageObject, async (page) => {
277-
await page.mouseDown(paletteItemDragHandle("M"));
278-
await page.mouseUp();
279-
await page.click(directionButtonLeft());
258+
await page.handlerClick(paletteItemDragHandle("M"));
259+
await page.handlerClick(directionButtonLeft());
280260
await expect(page.isDisplayed(paletteItemDragHandle("M"))).resolves.toBe(false);
281261
}),
282262
);

0 commit comments

Comments
 (0)