+35
-8
lines changedFilter options
+35
-8
lines changed Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
1
1
import { mount } from '@vue/test-utils'
2
-
import { waitNT } from '../../../tests/utils'
2
+
import { waitNT, waitRAF } from '../../../tests/utils'
3
3
import { BNavbarToggle } from './navbar-toggle'
4
4
5
5
describe('navbar-toggle', () => {
@@ -106,6 +106,10 @@ describe('navbar-toggle', () => {
106
106
target: 'target-7'
107
107
}
108
108
})
109
+
110
+
await waitRAF()
111
+
await waitNT(wrapper.vm)
112
+
109
113
let rootClicked = false
110
114
const onRootClick = () => {
111
115
rootClicked = true
Original file line number Diff line number Diff line change
@@ -9,10 +9,11 @@ import {
9
9
isTag,
10
10
removeAttr,
11
11
removeClass,
12
+
requestAF,
12
13
setAttr
13
14
} from '../../utils/dom'
14
15
import { isBrowser } from '../../utils/env'
15
-
import { eventOn, eventOff } from '../../utils/events'
16
+
import { EVENT_OPTIONS_PASSIVE, eventOn, eventOff } from '../../utils/events'
16
17
import { isString } from '../../utils/inspect'
17
18
import { keys } from '../../utils/object'
18
19
@@ -95,8 +96,8 @@ const getTargets = ({ modifiers, arg, value }, el) => {
95
96
const removeClickListener = el => {
96
97
const handler = el[BV_TOGGLE_CLICK_HANDLER]
97
98
if (handler) {
98
-
eventOff(el, 'click', handler)
99
-
eventOff(el, 'keydown', handler)
99
+
eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE)
100
+
eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE)
100
101
}
101
102
el[BV_TOGGLE_CLICK_HANDLER] = null
102
103
}
@@ -116,9 +117,9 @@ const addClickListener = (el, vnode) => {
116
117
}
117
118
}
118
119
el[BV_TOGGLE_CLICK_HANDLER] = handler
119
-
eventOn(el, 'click', handler)
120
+
eventOn(el, 'click', handler, EVENT_OPTIONS_PASSIVE)
120
121
if (isNonStandardTag(el)) {
121
-
eventOn(el, 'keydown', handler)
122
+
eventOn(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE)
122
123
}
123
124
}
124
125
}
@@ -203,7 +204,11 @@ const handleUpdate = (el, binding, vnode) => {
203
204
}
204
205
205
206
// Add/Update our click listener(s)
206
-
addClickListener(el, vnode)
207
+
// Wrap in a `requestAF()` to allow any previous
208
+
// click handling to occur first
209
+
requestAF(() => {
210
+
addClickListener(el, vnode)
211
+
})
207
212
208
213
// If targets array has changed, update
209
214
if (!looseEqual(targets, el[BV_TOGGLE_TARGETS])) {
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
1
1
import { mount } from '@vue/test-utils'
2
-
import { waitNT } from '../../../tests/utils'
2
+
import { waitNT, waitRAF } from '../../../tests/utils'
3
3
import { VBToggle } from './toggle'
4
4
5
5
// Emitted control event for collapse (emitted to collapse)
@@ -29,6 +29,9 @@ describe('v-b-toggle directive', () => {
29
29
30
30
const wrapper = mount(App)
31
31
32
+
await waitRAF()
33
+
await waitNT(wrapper.vm)
34
+
32
35
expect(wrapper.vm).toBeDefined()
33
36
expect(wrapper.element.tagName).toBe('BUTTON')
34
37
expect(spy).not.toHaveBeenCalled()
@@ -72,6 +75,9 @@ describe('v-b-toggle directive', () => {
72
75
73
76
const wrapper = mount(App)
74
77
78
+
await waitRAF()
79
+
await waitNT(wrapper.vm)
80
+
75
81
expect(wrapper.vm).toBeDefined()
76
82
expect(wrapper.element.tagName).toBe('BUTTON')
77
83
expect(spy).not.toHaveBeenCalled()
@@ -113,6 +119,9 @@ describe('v-b-toggle directive', () => {
113
119
114
120
const wrapper = mount(App)
115
121
122
+
await waitRAF()
123
+
await waitNT(wrapper.vm)
124
+
116
125
expect(wrapper.vm).toBeDefined()
117
126
expect(wrapper.element.tagName).toBe('BUTTON')
118
127
expect(spy).not.toHaveBeenCalled()
@@ -154,6 +163,9 @@ describe('v-b-toggle directive', () => {
154
163
155
164
const wrapper = mount(App)
156
165
166
+
await waitRAF()
167
+
await waitNT(wrapper.vm)
168
+
157
169
expect(wrapper.vm).toBeDefined()
158
170
expect(wrapper.element.tagName).toBe('A')
159
171
expect(spy).not.toHaveBeenCalled()
@@ -207,6 +219,9 @@ describe('v-b-toggle directive', () => {
207
219
}
208
220
})
209
221
222
+
await waitRAF()
223
+
await waitNT(wrapper.vm)
224
+
210
225
expect(wrapper.vm).toBeDefined()
211
226
expect(wrapper.element.tagName).toBe('BUTTON')
212
227
expect(spy).not.toHaveBeenCalled()
@@ -279,6 +294,9 @@ describe('v-b-toggle directive', () => {
279
294
280
295
const wrapper = mount(App)
281
296
297
+
await waitRAF()
298
+
await waitNT(wrapper.vm)
299
+
282
300
expect(wrapper.vm).toBeDefined()
283
301
expect(wrapper.element.tagName).toBe('SPAN')
284
302
expect(spy).not.toHaveBeenCalled()
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4