@@ -258,27 +258,25 @@ describe("calcite-popover", () => {
258
258
const page = await newE2EPage ( ) ;
259
259
260
260
await page . setContent (
261
- `<calcite-popover placement="auto" reference-element="ref">content</calcite-popover><div id="ref">referenceElement</div>` ,
261
+ html `< calcite-popover placement ="auto " reference-element ="ref "> content</ calcite-popover >
262
+ < div id ="ref " tabindex ="0 "> referenceElement</ div > ` ,
262
263
) ;
263
264
264
265
await page . waitForChanges ( ) ;
265
266
266
267
const popover = await page . find ( `calcite-popover` ) ;
268
+ const ref = await page . find ( "#ref" ) ;
267
269
268
270
expect ( await popover . isVisible ( ) ) . toBe ( false ) ;
269
271
270
- await page . evaluate ( ( ) => {
271
- document . getElementById ( "ref" ) . dispatchEvent ( new KeyboardEvent ( "keydown" , { key : "Enter" } ) ) ;
272
- } ) ;
273
-
272
+ await ref . focus ( ) ;
273
+ await page . keyboard . press ( "Enter" ) ;
274
274
await page . waitForChanges ( ) ;
275
275
276
276
expect ( await popover . isVisible ( ) ) . toBe ( true ) ;
277
277
278
- await page . evaluate ( ( ) => {
279
- document . getElementById ( "ref" ) . dispatchEvent ( new KeyboardEvent ( "keydown" , { key : "Enter" } ) ) ;
280
- } ) ;
281
-
278
+ await ref . focus ( ) ;
279
+ await page . keyboard . press ( "Enter" ) ;
282
280
await page . waitForChanges ( ) ;
283
281
284
282
expect ( await popover . isVisible ( ) ) . toBe ( false ) ;
@@ -288,27 +286,25 @@ describe("calcite-popover", () => {
288
286
const page = await newE2EPage ( ) ;
289
287
290
288
await page . setContent (
291
- `<calcite-popover placement="auto" reference-element="ref">content</calcite-popover><div id="ref">referenceElement</div>` ,
289
+ html `< calcite-popover placement ="auto " reference-element ="ref "> content</ calcite-popover >
290
+ < div id ="ref " tabindex ="0 "> referenceElement</ div > ` ,
292
291
) ;
293
292
294
293
await page . waitForChanges ( ) ;
295
294
296
295
const popover = await page . find ( `calcite-popover` ) ;
296
+ const ref = await page . find ( "#ref" ) ;
297
297
298
298
expect ( await popover . isVisible ( ) ) . toBe ( false ) ;
299
299
300
- await page . evaluate ( ( ) => {
301
- document . getElementById ( "ref" ) . dispatchEvent ( new KeyboardEvent ( "keydown" , { key : " " } ) ) ;
302
- } ) ;
303
-
300
+ await ref . focus ( ) ;
301
+ await page . keyboard . press ( " " ) ;
304
302
await page . waitForChanges ( ) ;
305
303
306
304
expect ( await popover . isVisible ( ) ) . toBe ( true ) ;
307
305
308
- await page . evaluate ( ( ) => {
309
- document . getElementById ( "ref" ) . dispatchEvent ( new KeyboardEvent ( "keydown" , { key : " " } ) ) ;
310
- } ) ;
311
-
306
+ await ref . focus ( ) ;
307
+ await page . keyboard . press ( " " ) ;
312
308
await page . waitForChanges ( ) ;
313
309
314
310
expect ( await popover . isVisible ( ) ) . toBe ( false ) ;
@@ -559,6 +555,22 @@ describe("calcite-popover", () => {
559
555
expect ( await popover . getProperty ( "open" ) ) . toBe ( false ) ;
560
556
} ) ;
561
557
558
+ it ( "should not toggle popovers when the ref element (component) is disabled" , async ( ) => {
559
+ const page = await newE2EPage ( ) ;
560
+ await page . setContent (
561
+ html ` < calcite-popover reference-element ="ref "> Hello World</ calcite-popover >
562
+ < calcite-button id ="ref " disabled > Button</ calcite-button > ` ,
563
+ ) ;
564
+ const popover = await page . find ( "calcite-popover" ) ;
565
+ const ref = await page . find ( "#ref" ) ;
566
+
567
+ expect ( await popover . getProperty ( "open" ) ) . toBe ( false ) ;
568
+
569
+ await ref . click ( ) ;
570
+ await page . waitForChanges ( ) ;
571
+ expect ( await popover . getProperty ( "open" ) ) . toBe ( false ) ;
572
+ } ) ;
573
+
562
574
describe ( "owns a floating-ui" , ( ) => {
563
575
floatingUIOwner (
564
576
`<calcite-popover placement="auto" reference-element="ref">content</calcite-popover><div id="ref">referenceElement</div>` ,
0 commit comments