@@ -51,7 +51,7 @@ describe('DropdownCustom', () => {
51
51
wrapper . destroy ( ) ;
52
52
} ) ;
53
53
54
- it ( 'renders the BaseDropdown at the root' , ( ) => {
54
+ it ( 'renders the BaseDropdown at the root' , async ( ) => {
55
55
wrapper = createWrapper ( ) ;
56
56
const root = wrapper . findComponent ( BaseDropdown ) ;
57
57
// assert exist
@@ -61,6 +61,7 @@ describe('DropdownCustom', () => {
61
61
// assert isOpen class
62
62
expect ( root . classes ( ) ) . not . toContain ( OpenedClass ) ;
63
63
wrapper . findComponent ( { ref : 'dropdownToggle' } ) . trigger ( 'click' ) ;
64
+ await wrapper . vm . $nextTick ( ) ;
64
65
expect ( root . classes ( ) ) . toContain ( OpenedClass ) ;
65
66
} ) ;
66
67
@@ -99,45 +100,53 @@ describe('DropdownCustom', () => {
99
100
expect ( toggle . find ( '.form-dropdown-title' ) . text ( ) ) . toEqual ( defaultProps . value ) ;
100
101
} ) ;
101
102
102
- it ( 'toggles the dropdown on/off on `click`' , ( ) => {
103
+ it ( 'toggles the dropdown on/off on `click`' , async ( ) => {
103
104
wrapper = createWrapper ( ) ;
104
105
const toggle = wrapper . findComponent ( { ref : 'dropdownToggle' } ) ;
105
106
toggle . trigger ( 'click' ) ;
107
+ await wrapper . vm . $nextTick ( ) ;
106
108
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
107
109
toggle . trigger ( 'click' ) ;
110
+ await wrapper . vm . $nextTick ( ) ;
108
111
expect ( wrapper . classes ( ) ) . not . toContain ( OpenedClass ) ;
109
112
expect ( wrapper . emitted ( 'open' ) ) . toBeTruthy ( ) ;
110
113
expect ( wrapper . emitted ( 'close' ) ) . toBeTruthy ( ) ;
111
114
} ) ;
112
115
113
- it ( 'opens the dropdown on `enter`' , ( ) => {
116
+ it ( 'opens the dropdown on `enter`' , async ( ) => {
114
117
wrapper = createWrapper ( ) ;
115
118
const toggle = wrapper . findComponent ( { ref : 'dropdownToggle' } ) ;
116
119
toggle . trigger ( 'keydown.enter' ) ;
120
+ await wrapper . vm . $nextTick ( ) ;
117
121
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
118
122
toggle . trigger ( 'keydown.enter' ) ;
123
+ await wrapper . vm . $nextTick ( ) ;
119
124
// assert it does not close it
120
125
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
121
126
expect ( wrapper . emitted ( 'open' ) ) . toBeTruthy ( ) ;
122
127
} ) ;
123
128
124
- it ( 'opens the dropdown on `keydown.down`' , ( ) => {
129
+ it ( 'opens the dropdown on `keydown.down`' , async ( ) => {
125
130
wrapper = createWrapper ( ) ;
126
131
const toggle = wrapper . findComponent ( { ref : 'dropdownToggle' } ) ;
127
132
toggle . trigger ( 'keydown.down' ) ;
133
+ await wrapper . vm . $nextTick ( ) ;
128
134
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
129
135
toggle . trigger ( 'keydown.down' ) ;
136
+ await wrapper . vm . $nextTick ( ) ;
130
137
// assert it does not close it
131
138
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
132
139
expect ( wrapper . emitted ( 'open' ) ) . toBeTruthy ( ) ;
133
140
} ) ;
134
141
135
- it ( 'opens the dropdown on `keydown.up`' , ( ) => {
142
+ it ( 'opens the dropdown on `keydown.up`' , async ( ) => {
136
143
wrapper = createWrapper ( ) ;
137
144
const toggle = wrapper . findComponent ( { ref : 'dropdownToggle' } ) ;
138
145
toggle . trigger ( 'keydown.up' ) ;
146
+ await wrapper . vm . $nextTick ( ) ;
139
147
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
140
148
toggle . trigger ( 'keydown.up' ) ;
149
+ await wrapper . vm . $nextTick ( ) ;
141
150
// assert it does not close it
142
151
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
143
152
expect ( wrapper . emitted ( 'open' ) ) . toBeTruthy ( ) ;
@@ -147,6 +156,7 @@ describe('DropdownCustom', () => {
147
156
wrapper = createWrapper ( ) ;
148
157
const toggle = wrapper . findComponent ( { ref : 'dropdownToggle' } ) ;
149
158
toggle . trigger ( 'click' ) ;
159
+ await wrapper . vm . $nextTick ( ) ;
150
160
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
151
161
toggle . trigger ( 'keydown.esc' ) ;
152
162
await wrapper . vm . $nextTick ( ) ;
@@ -233,23 +243,27 @@ describe('DropdownCustom', () => {
233
243
expect ( slotProps . value ) . toBe ( defaultProps . value ) ;
234
244
} ) ;
235
245
236
- it ( 'provides the `isOpen` variable' , ( ) => {
246
+ it ( 'provides the `isOpen` variable' , async ( ) => {
237
247
expect ( slotProps . isOpen ) . toBe ( false ) ;
238
248
toggle . trigger ( 'click' ) ;
249
+ await wrapper . vm . $nextTick ( ) ;
239
250
expect ( slotProps . isOpen ) . toBe ( true ) ;
240
251
} ) ;
241
252
242
- it ( 'provides the correct `classes`' , ( ) => {
253
+ it ( 'provides the correct `classes`' , async ( ) => {
243
254
expect ( slotProps . contentClasses ) . toEqual ( [ 'form-dropdown-content' , { [ OpenedClass ] : false } ] ) ;
244
255
toggle . trigger ( 'click' ) ;
256
+ await wrapper . vm . $nextTick ( ) ;
245
257
expect ( slotProps . contentClasses ) . toEqual ( [ 'form-dropdown-content' , { [ OpenedClass ] : true } ] ) ;
246
258
} ) ;
247
259
248
- it ( 'provides a `closeDropdown` method' , ( ) => {
260
+ it ( 'provides a `closeDropdown` method' , async ( ) => {
249
261
expect ( slotProps . closeDropdown ) . toEqual ( expect . any ( Function ) ) ;
250
262
toggle . trigger ( 'click' ) ;
263
+ await wrapper . vm . $nextTick ( ) ;
251
264
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
252
265
slotProps . closeDropdown ( ) ;
266
+ await wrapper . vm . $nextTick ( ) ;
253
267
expect ( wrapper . classes ( ) ) . not . toContain ( OpenedClass ) ;
254
268
} ) ;
255
269
@@ -263,6 +277,7 @@ describe('DropdownCustom', () => {
263
277
it ( 'provides a `closeAndFocusToggler` method' , async ( ) => {
264
278
expect ( slotProps . closeAndFocusToggler ) . toEqual ( expect . any ( Function ) ) ;
265
279
toggle . trigger ( 'click' ) ;
280
+ await wrapper . vm . $nextTick ( ) ;
266
281
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
267
282
await slotProps . closeAndFocusToggler ( ) ;
268
283
expect ( wrapper . classes ( ) ) . not . toContain ( OpenedClass ) ;
@@ -279,9 +294,11 @@ describe('DropdownCustom', () => {
279
294
const event = new Event ( 'click' ) ;
280
295
Object . defineProperty ( event , 'target' , { value : label } ) ;
281
296
document . dispatchEvent ( event ) ;
297
+ await wrapper . vm . $nextTick ( ) ;
282
298
expect ( wrapper . classes ( ) ) . toContain ( OpenedClass ) ;
283
299
284
300
document . dispatchEvent ( new Event ( 'click' ) ) ;
301
+ await wrapper . vm . $nextTick ( ) ;
285
302
expect ( wrapper . classes ( ) ) . not . toContain ( OpenedClass ) ;
286
303
} ) ;
287
304
0 commit comments