@@ -43,8 +43,7 @@ test.describe('Mouse Behavior', () => {
43
43
// If I use `toBeVisible` here, the test fails that the `toBeHidden` check below????
44
44
await expect ( d . getPopover ( ) ) . toHaveCSS ( 'opacity' , '1' ) ;
45
45
46
- const outsideDiv = page . locator ( '#content-outside-of-popover' ) ;
47
- await outsideDiv . click ( ) ;
46
+ await page . mouse . click ( 0 , 0 ) ;
48
47
49
48
await expect ( d . getPopover ( ) ) . toBeHidden ( ) ;
50
49
} ) ;
@@ -60,10 +59,10 @@ test.describe('Mouse Behavior', () => {
60
59
await expect ( firstPopOver ) . toBeHidden ( ) ;
61
60
await expect ( secondPopOver ) . toBeHidden ( ) ;
62
61
63
- await firstPopoverTrigger . click ( ) ;
62
+ await firstPopoverTrigger . click ( { position : { x : 1 , y : 1 } } ) ;
64
63
await expect ( firstPopOver ) . toBeVisible ( ) ;
65
64
66
- await secondPopoverTrigger . click ( ) ;
65
+ await secondPopoverTrigger . click ( { position : { x : 1 , y : 1 } } ) ;
67
66
await expect ( secondPopOver ) . toBeVisible ( ) ;
68
67
69
68
await expect ( firstPopOver ) . toBeHidden ( ) ;
@@ -81,8 +80,8 @@ test.describe('Mouse Behavior', () => {
81
80
await expect ( firstPopOver ) . toBeHidden ( ) ;
82
81
await expect ( secondPopOver ) . toBeHidden ( ) ;
83
82
84
- await firstPopoverTrigger . click ( ) ;
85
- await secondPopoverTrigger . click ( ) ;
83
+ await firstPopoverTrigger . click ( { position : { x : 1 , y : 1 } } ) ;
84
+ await secondPopoverTrigger . click ( { position : { x : 1 , y : 1 } } ) ;
86
85
87
86
await expect ( firstPopOver ) . toBeVisible ( ) ;
88
87
await expect ( secondPopOver ) . toBeVisible ( ) ;
@@ -97,8 +96,8 @@ test.describe('Mouse Behavior', () => {
97
96
const [ firstPopoverTrigger , secondPopoverTrigger ] = await d . getAllTriggers ( ) ;
98
97
99
98
// Arrange
100
- await firstPopoverTrigger . click ( ) ;
101
- await secondPopoverTrigger . click ( ) ;
99
+ await firstPopoverTrigger . click ( { position : { x : 1 , y : 1 } } ) ;
100
+ await secondPopoverTrigger . click ( { position : { x : 1 , y : 1 } } ) ;
102
101
103
102
await expect ( firstPopOver ) . toBeVisible ( ) ;
104
103
await expect ( secondPopOver ) . toBeVisible ( ) ;
@@ -114,27 +113,30 @@ test.describe('Mouse Behavior', () => {
114
113
await expect ( secondPopOver ) . toBeHidden ( ) ;
115
114
} ) ;
116
115
117
- test ( `GIVEN a combobox with placement set to top
118
- WHEN opening the combobox
119
- THEN the popover should appear above the trigger` , async ( { page } ) => {
116
+ test ( `GIVEN a popover with placement set to top
117
+ WHEN opening the popover
118
+ THEN the popover should appear to the right of the trigger` , async ( { page } ) => {
120
119
const { driver : d } = await setup ( page , 'placement' ) ;
121
120
122
121
const popover = d . getPopover ( ) ;
123
122
const trigger = d . getTrigger ( ) ;
124
123
125
- await trigger . click ( ) ;
124
+ await trigger . hover ( ) ;
126
125
127
126
await expect ( popover ) . toBeVisible ( ) ;
128
127
129
128
const popoverBoundingBox = await popover . boundingBox ( ) ;
130
129
const triggerBoundingBox = await trigger . boundingBox ( ) ;
131
130
132
- expect ( popoverBoundingBox ?. y ) . toBeLessThan ( triggerBoundingBox ?. y ?? 0 ) ;
131
+ expect ( popoverBoundingBox ?. x ) . toBeGreaterThan (
132
+ ( triggerBoundingBox ?. x ?? Number . MAX_VALUE ) +
133
+ ( triggerBoundingBox ?. width ?? Number . MAX_VALUE ) ,
134
+ ) ;
133
135
} ) ;
134
136
135
- test ( `GIVEN a combobox with a gutter configured
136
- WHEN opening the combobox
137
- THEN the popover should be spaced 24px from the combobox ` , async ( { page } ) => {
137
+ test ( `GIVEN a popover with a gutter configured
138
+ WHEN opening the popover
139
+ THEN the popover should be spaced 40px from the popover ` , async ( { page } ) => {
138
140
const { driver : d } = await setup ( page , 'gutter' ) ;
139
141
140
142
const popover = d . getPopover ( ) ;
@@ -147,12 +149,10 @@ test.describe('Mouse Behavior', () => {
147
149
const popoverBoundingBox = await popover . boundingBox ( ) ;
148
150
const triggerBoundingBox = await trigger . boundingBox ( ) ;
149
151
150
- console . log ( triggerBoundingBox , popoverBoundingBox ) ;
151
-
152
- const triggerBottomAbsolutePosition =
153
- ( triggerBoundingBox ?. y ?? 0 ) + ( triggerBoundingBox ?. height ?? 0 ) ;
154
-
155
- expect ( ( popoverBoundingBox ?. y ?? 0 ) - triggerBottomAbsolutePosition ) . toBe ( 24 ) ;
152
+ expect (
153
+ ( triggerBoundingBox ?. y ?? 0 ) -
154
+ ( ( popoverBoundingBox ?. y ?? 0 ) + ( popoverBoundingBox ?. height ?? 0 ) ) ,
155
+ ) . toBe ( 40 ) ;
156
156
} ) ;
157
157
158
158
// test(`GIVEN a combobox with a flip configured
@@ -190,7 +190,6 @@ test.describe('Keyboard Behavior', () => {
190
190
const { driver : d } = await setup ( page , 'hero' ) ;
191
191
await expect ( d . getPopover ( ) ) . toBeHidden ( ) ;
192
192
193
- await d . getTrigger ( ) . focus ( ) ;
194
193
await d . getTrigger ( ) . press ( key ) ;
195
194
196
195
await expect ( d . getPopover ( ) ) . toBeVisible ( ) ;
@@ -202,15 +201,11 @@ test.describe('Keyboard Behavior', () => {
202
201
const { driver : d } = await setup ( page , 'hero' ) ;
203
202
204
203
// Open the popover
205
- await d . getTrigger ( ) . focus ( ) ;
206
204
await d . getTrigger ( ) . press ( key ) ;
207
205
208
206
await expect ( d . getPopover ( ) ) . toBeVisible ( ) ;
209
207
210
- await d . getTrigger ( ) . blur ( ) ;
211
-
212
208
// Close the popover
213
- await d . getTrigger ( ) . focus ( ) ;
214
209
await d . getTrigger ( ) . press ( key ) ;
215
210
216
211
await expect ( d . getPopover ( ) ) . toBeHidden ( ) ;
@@ -223,7 +218,6 @@ test.describe('Keyboard Behavior', () => {
223
218
const { driver : d } = await setup ( page , 'hero' ) ;
224
219
225
220
// Open the popover
226
- await d . getTrigger ( ) . focus ( ) ;
227
221
await d . getTrigger ( ) . press ( 'Enter' ) ;
228
222
229
223
await expect ( d . getPopover ( ) ) . toBeVisible ( ) ;
@@ -259,7 +253,6 @@ test.describe('Keyboard Behavior', () => {
259
253
await expect ( firstPopOver ) . toBeHidden ( ) ;
260
254
await expect ( secondPopOver ) . toBeHidden ( ) ;
261
255
262
- await firstPopoverTrigger . focus ( ) ;
263
256
await firstPopoverTrigger . press ( 'Enter' ) ;
264
257
await expect ( firstPopOver ) . toBeVisible ( ) ;
265
258
await firstPopoverTrigger . press ( 'Tab' ) ;
@@ -282,10 +275,8 @@ test.describe('Keyboard Behavior', () => {
282
275
await expect ( firstPopOver ) . toBeHidden ( ) ;
283
276
await expect ( secondPopOver ) . toBeHidden ( ) ;
284
277
285
- await firstPopoverTrigger . focus ( ) ;
286
278
await firstPopoverTrigger . press ( 'Enter' ) ;
287
279
288
- await secondPopoverTrigger . focus ( ) ;
289
280
await secondPopoverTrigger . press ( 'Enter' ) ;
290
281
291
282
await expect ( firstPopOver ) . toBeVisible ( ) ;
@@ -301,24 +292,20 @@ test.describe('Keyboard Behavior', () => {
301
292
const [ firstPopoverTrigger , secondPopoverTrigger ] = await d . getAllTriggers ( ) ;
302
293
303
294
// Arrange
304
- await firstPopoverTrigger . focus ( ) ;
305
295
await firstPopoverTrigger . press ( 'Enter' ) ;
306
296
307
- await secondPopoverTrigger . focus ( ) ;
308
297
await secondPopoverTrigger . press ( 'Enter' ) ;
309
298
310
299
await expect ( firstPopOver ) . toBeVisible ( ) ;
311
300
await expect ( secondPopOver ) . toBeVisible ( ) ;
312
301
313
302
// Act
314
303
await secondPopoverTrigger . press ( 'Enter' ) ;
315
-
316
- await firstPopoverTrigger . focus ( ) ;
317
- await firstPopoverTrigger . press ( 'Enter' ) ;
304
+ await expect ( secondPopOver ) . toBeHidden ( ) ;
318
305
319
306
// Assert
307
+ await firstPopoverTrigger . press ( 'Enter' ) ;
320
308
await expect ( firstPopOver ) . toBeHidden ( ) ;
321
- await expect ( secondPopOver ) . toBeHidden ( ) ;
322
309
} ) ;
323
310
324
311
test ( `GIVEN a programmatic popover
@@ -331,7 +318,6 @@ test.describe('Keyboard Behavior', () => {
331
318
332
319
await expect ( popover ) . toBeHidden ( ) ;
333
320
334
- await programmaticButtonTrigger . focus ( ) ;
335
321
await programmaticButtonTrigger . press ( 'o' ) ;
336
322
337
323
await expect ( popover ) . toBeVisible ( ) ;
@@ -345,7 +331,6 @@ test.describe('Keyboard Behavior', () => {
345
331
const popover = d . getPopover ( ) ;
346
332
const programmaticButtonTrigger = d . getProgrammaticButtonTrigger ( ) ;
347
333
348
- await programmaticButtonTrigger . focus ( ) ;
349
334
await programmaticButtonTrigger . press ( 'o' ) ;
350
335
351
336
await expect ( popover ) . toBeVisible ( ) ;
@@ -355,22 +340,24 @@ test.describe('Keyboard Behavior', () => {
355
340
await expect ( popover ) . toBeHidden ( ) ;
356
341
} ) ;
357
342
358
- test ( `GIVEN a combobox with placement set to top
359
- WHEN opening the combobox using the keyboard
360
- THEN the popover should appear above the trigger` , async ( { page } ) => {
343
+ test ( `GIVEN a popover with placement set to top
344
+ WHEN opening the popover using the keyboard
345
+ THEN the popover should appear to the right of the trigger` , async ( { page } ) => {
361
346
const { driver : d } = await setup ( page , 'placement' ) ;
362
347
363
348
const popover = d . getPopover ( ) ;
364
349
const trigger = d . getTrigger ( ) ;
365
350
366
- await trigger . focus ( ) ;
367
351
await trigger . press ( 'Enter' ) ;
368
352
369
353
await expect ( popover ) . toBeVisible ( ) ;
370
354
371
355
const popoverBoundingBox = await popover . boundingBox ( ) ;
372
356
const triggerBoundingBox = await trigger . boundingBox ( ) ;
373
357
374
- expect ( popoverBoundingBox ?. y ) . toBeLessThan ( triggerBoundingBox ?. y ?? 0 ) ;
358
+ expect ( popoverBoundingBox ?. x ) . toBeGreaterThan (
359
+ ( triggerBoundingBox ?. x ?? Number . MAX_VALUE ) +
360
+ ( triggerBoundingBox ?. width ?? Number . MAX_VALUE ) ,
361
+ ) ;
375
362
} ) ;
376
363
} ) ;
0 commit comments