Skip to content

Commit 5aeea0d

Browse files
committed
Fix DropdownCustom.spec.js
1 parent 78b73a6 commit 5aeea0d

File tree

1 file changed

+25
-8
lines changed

1 file changed

+25
-8
lines changed

tests/unit/components/DropdownCustom.spec.js

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ describe('DropdownCustom', () => {
5151
wrapper.destroy();
5252
});
5353

54-
it('renders the BaseDropdown at the root', () => {
54+
it('renders the BaseDropdown at the root', async () => {
5555
wrapper = createWrapper();
5656
const root = wrapper.findComponent(BaseDropdown);
5757
// assert exist
@@ -61,6 +61,7 @@ describe('DropdownCustom', () => {
6161
// assert isOpen class
6262
expect(root.classes()).not.toContain(OpenedClass);
6363
wrapper.findComponent({ ref: 'dropdownToggle' }).trigger('click');
64+
await wrapper.vm.$nextTick();
6465
expect(root.classes()).toContain(OpenedClass);
6566
});
6667

@@ -99,45 +100,53 @@ describe('DropdownCustom', () => {
99100
expect(toggle.find('.form-dropdown-title').text()).toEqual(defaultProps.value);
100101
});
101102

102-
it('toggles the dropdown on/off on `click`', () => {
103+
it('toggles the dropdown on/off on `click`', async () => {
103104
wrapper = createWrapper();
104105
const toggle = wrapper.findComponent({ ref: 'dropdownToggle' });
105106
toggle.trigger('click');
107+
await wrapper.vm.$nextTick();
106108
expect(wrapper.classes()).toContain(OpenedClass);
107109
toggle.trigger('click');
110+
await wrapper.vm.$nextTick();
108111
expect(wrapper.classes()).not.toContain(OpenedClass);
109112
expect(wrapper.emitted('open')).toBeTruthy();
110113
expect(wrapper.emitted('close')).toBeTruthy();
111114
});
112115

113-
it('opens the dropdown on `enter`', () => {
116+
it('opens the dropdown on `enter`', async () => {
114117
wrapper = createWrapper();
115118
const toggle = wrapper.findComponent({ ref: 'dropdownToggle' });
116119
toggle.trigger('keydown.enter');
120+
await wrapper.vm.$nextTick();
117121
expect(wrapper.classes()).toContain(OpenedClass);
118122
toggle.trigger('keydown.enter');
123+
await wrapper.vm.$nextTick();
119124
// assert it does not close it
120125
expect(wrapper.classes()).toContain(OpenedClass);
121126
expect(wrapper.emitted('open')).toBeTruthy();
122127
});
123128

124-
it('opens the dropdown on `keydown.down`', () => {
129+
it('opens the dropdown on `keydown.down`', async () => {
125130
wrapper = createWrapper();
126131
const toggle = wrapper.findComponent({ ref: 'dropdownToggle' });
127132
toggle.trigger('keydown.down');
133+
await wrapper.vm.$nextTick();
128134
expect(wrapper.classes()).toContain(OpenedClass);
129135
toggle.trigger('keydown.down');
136+
await wrapper.vm.$nextTick();
130137
// assert it does not close it
131138
expect(wrapper.classes()).toContain(OpenedClass);
132139
expect(wrapper.emitted('open')).toBeTruthy();
133140
});
134141

135-
it('opens the dropdown on `keydown.up`', () => {
142+
it('opens the dropdown on `keydown.up`', async () => {
136143
wrapper = createWrapper();
137144
const toggle = wrapper.findComponent({ ref: 'dropdownToggle' });
138145
toggle.trigger('keydown.up');
146+
await wrapper.vm.$nextTick();
139147
expect(wrapper.classes()).toContain(OpenedClass);
140148
toggle.trigger('keydown.up');
149+
await wrapper.vm.$nextTick();
141150
// assert it does not close it
142151
expect(wrapper.classes()).toContain(OpenedClass);
143152
expect(wrapper.emitted('open')).toBeTruthy();
@@ -147,6 +156,7 @@ describe('DropdownCustom', () => {
147156
wrapper = createWrapper();
148157
const toggle = wrapper.findComponent({ ref: 'dropdownToggle' });
149158
toggle.trigger('click');
159+
await wrapper.vm.$nextTick();
150160
expect(wrapper.classes()).toContain(OpenedClass);
151161
toggle.trigger('keydown.esc');
152162
await wrapper.vm.$nextTick();
@@ -233,23 +243,27 @@ describe('DropdownCustom', () => {
233243
expect(slotProps.value).toBe(defaultProps.value);
234244
});
235245

236-
it('provides the `isOpen` variable', () => {
246+
it('provides the `isOpen` variable', async () => {
237247
expect(slotProps.isOpen).toBe(false);
238248
toggle.trigger('click');
249+
await wrapper.vm.$nextTick();
239250
expect(slotProps.isOpen).toBe(true);
240251
});
241252

242-
it('provides the correct `classes`', () => {
253+
it('provides the correct `classes`', async () => {
243254
expect(slotProps.contentClasses).toEqual(['form-dropdown-content', { [OpenedClass]: false }]);
244255
toggle.trigger('click');
256+
await wrapper.vm.$nextTick();
245257
expect(slotProps.contentClasses).toEqual(['form-dropdown-content', { [OpenedClass]: true }]);
246258
});
247259

248-
it('provides a `closeDropdown` method', () => {
260+
it('provides a `closeDropdown` method', async () => {
249261
expect(slotProps.closeDropdown).toEqual(expect.any(Function));
250262
toggle.trigger('click');
263+
await wrapper.vm.$nextTick();
251264
expect(wrapper.classes()).toContain(OpenedClass);
252265
slotProps.closeDropdown();
266+
await wrapper.vm.$nextTick();
253267
expect(wrapper.classes()).not.toContain(OpenedClass);
254268
});
255269

@@ -263,6 +277,7 @@ describe('DropdownCustom', () => {
263277
it('provides a `closeAndFocusToggler` method', async () => {
264278
expect(slotProps.closeAndFocusToggler).toEqual(expect.any(Function));
265279
toggle.trigger('click');
280+
await wrapper.vm.$nextTick();
266281
expect(wrapper.classes()).toContain(OpenedClass);
267282
await slotProps.closeAndFocusToggler();
268283
expect(wrapper.classes()).not.toContain(OpenedClass);
@@ -279,9 +294,11 @@ describe('DropdownCustom', () => {
279294
const event = new Event('click');
280295
Object.defineProperty(event, 'target', { value: label });
281296
document.dispatchEvent(event);
297+
await wrapper.vm.$nextTick();
282298
expect(wrapper.classes()).toContain(OpenedClass);
283299

284300
document.dispatchEvent(new Event('click'));
301+
await wrapper.vm.$nextTick();
285302
expect(wrapper.classes()).not.toContain(OpenedClass);
286303
});
287304

0 commit comments

Comments
 (0)