@@ -8,61 +8,58 @@ module('Integration | Component | ui-popover', function (hooks) {
8
8
9
9
test ( 'it attaches event listeners to its parent element' , async function ( assert ) {
10
10
await render ( hbs `
11
- <button>
12
- Foo <UiPopover @testId="tip" >Hello World</UiPopover>
11
+ <button id="toggle" >
12
+ Foo <UiPopover>Hello World</UiPopover>
13
13
</button>
14
14
` ) ;
15
15
16
- const overlay = find ( '.popover[data-test-id="tip"] ' ) as Element ;
16
+ const overlay = find ( '.popover' ) as Element ;
17
17
18
18
assert
19
- . dom ( 'button ' )
19
+ . dom ( '#toggle ' )
20
20
. hasAttribute ( 'aria-controls' , overlay . id )
21
21
. hasAttribute ( 'aria-expanded' , 'false' ) ;
22
- assert . dom ( '.popover[data-test-id="tip"] ' ) . isNotVisible ( ) ;
22
+ assert . dom ( '.popover' ) . isNotVisible ( ) ;
23
23
24
- await click ( 'button ' ) ;
24
+ await click ( '#toggle ' ) ;
25
25
26
- assert . dom ( 'button ' ) . hasAttribute ( 'aria-expanded' , 'true' ) ;
27
- assert . dom ( '.popover[data-test-id="tip"] ' ) . isVisible ( ) . hasText ( 'Hello World' ) ;
26
+ assert . dom ( '#toggle ' ) . hasAttribute ( 'aria-expanded' , 'true' ) ;
27
+ assert . dom ( '.popover .popover-content ' ) . isVisible ( ) . hasText ( 'Hello World' ) ;
28
28
29
- await click ( 'button ' ) ;
29
+ await click ( '#toggle ' ) ;
30
30
31
- assert . dom ( '.popover[data-test-id="tip"] ' ) . isNotVisible ( ) ;
31
+ assert . dom ( '.popover' ) . isNotVisible ( ) ;
32
32
} ) ;
33
33
34
34
test ( 'it is not closed by outside interactions' , async function ( assert ) {
35
35
await render ( hbs `
36
36
<button id="toggle">
37
- Foo <UiPopover @testId="tip" >Hello World</UiPopover>
37
+ Foo <UiPopover>Hello World</UiPopover>
38
38
</button>
39
39
40
40
<button id="other-button">Click Me</button>
41
41
` ) ;
42
42
43
- assert . dom ( '.popover[data-test-id="tip"] ' ) . isNotVisible ( ) ;
43
+ assert . dom ( '.popover' ) . isNotVisible ( ) ;
44
44
45
45
await click ( '#toggle' ) ;
46
46
47
- assert . dom ( '.popover[data-test-id="tip"] ' ) . isVisible ( ) ;
47
+ assert . dom ( '.popover' ) . isVisible ( ) ;
48
48
49
49
await click ( '#other-button' ) ;
50
50
51
- assert . dom ( '.popover[data-test-id="tip"] ' ) . isVisible ( ) ;
51
+ assert . dom ( '.popover' ) . isVisible ( ) ;
52
52
} ) ;
53
53
54
54
test ( 'it accepts a heading' , async function ( assert ) {
55
55
await render ( hbs `
56
56
<button>
57
- Foo <UiPopover @testId="tip" @ title="Popover Title">Hello World</UiPopover>
57
+ Foo <UiPopover @title="Popover Title">Hello World</UiPopover>
58
58
</button>
59
59
` ) ;
60
60
61
- assert . dom ( '.popover[data-test-id="tip"]' ) . hasTagName ( 'section' ) ;
62
- assert
63
- . dom ( '.popover[data-test-id="tip"] .popover-title' )
64
- . hasTagName ( 'header' )
65
- . hasText ( 'Popover Title' ) ;
61
+ assert . dom ( '.popover' ) . hasTagName ( 'section' ) ;
62
+ assert . dom ( '.popover .popover-title' ) . hasTagName ( 'header' ) . hasText ( 'Popover Title' ) ;
66
63
} ) ;
67
64
68
65
test ( 'it manages focus as though it were inline with its trigger' , async function ( assert ) {
@@ -102,7 +99,7 @@ module('Integration | Component | ui-popover', function (hooks) {
102
99
103
100
await triggerKeyEvent ( '#trigger' , 'keydown' , 'Tab' ) ;
104
101
105
- assert . dom ( '.popover #username ' ) . isFocused ( ) ;
102
+ assert . dom ( '.popover button[aria-label="Close"] ' ) . isFocused ( ) ;
106
103
107
104
await focus ( '.popover #submitLogin' ) ;
108
105
await triggerKeyEvent ( '.popover' , 'keydown' , 'Tab' ) ;
@@ -113,9 +110,28 @@ module('Integration | Component | ui-popover', function (hooks) {
113
110
114
111
assert . dom ( '.popover #submitLogin' ) . isFocused ( ) ;
115
112
116
- await focus ( '.popover #username ' ) ;
113
+ await focus ( '.popover button[aria-label="Close"] ' ) ;
117
114
await triggerKeyEvent ( '.popover' , 'keydown' , 'Tab' , { shiftKey : true } ) ;
118
115
119
116
assert . dom ( '#trigger' ) . isFocused ( ) ;
120
117
} ) ;
118
+
119
+ test ( 'it can be closed with its own close button' , async function ( assert ) {
120
+ await render ( hbs `
121
+ <button id="toggle">
122
+ Foo <UiPopover>Hello World</UiPopover>
123
+ </button>
124
+ ` ) ;
125
+
126
+ assert . dom ( '.popover' ) . isNotVisible ( ) ;
127
+
128
+ await click ( '#toggle' ) ;
129
+
130
+ assert . dom ( '.popover' ) . isVisible ( ) ;
131
+
132
+ await click ( '.popover button[aria-label="Close"]' ) ;
133
+
134
+ assert . dom ( '.popover' ) . isNotVisible ( ) ;
135
+ assert . dom ( '#toggle' ) . isFocused ( ) ;
136
+ } ) ;
121
137
} ) ;
0 commit comments