Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2770e69

Browse files
committed
test: use setup/teardown to override setTimeout
1 parent fcd51f6 commit 2770e69

File tree

1 file changed

+34
-28
lines changed

1 file changed

+34
-28
lines changed

test/test.js

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -426,36 +426,42 @@ suite('include-fragment-element', function() {
426426
})
427427
})
428428

429-
test('loading events fire in guaranteed order', function() {
430-
const elem = document.createElement('include-fragment')
431-
const order = []
432-
const connected = []
433-
const events = [
434-
when(elem, 'loadend').then(() => {
435-
order.push('loadend')
436-
connected.push(elem.isConnected)
437-
}),
438-
when(elem, 'load').then(() => {
439-
order.push('load')
440-
connected.push(elem.isConnected)
441-
}),
442-
when(elem, 'loadstart').then(() => {
443-
order.push('loadstart')
444-
connected.push(elem.isConnected)
445-
})
446-
]
447-
elem.src = '/hello'
448-
449-
// Emulate some kind of timer clamping
429+
suite('event order', () => {
450430
const originalSetTimeout = window.setTimeout
451-
let i = 60
452-
window.setTimeout = (fn, ms, ...rest) => originalSetTimeout.call(window, fn, ms + (i -= 20), ...rest)
453-
454-
document.body.appendChild(elem)
455-
return Promise.all(events).then(() => {
431+
setup(() => {
432+
// Emulate some kind of timer clamping
433+
let i = 60
434+
window.setTimeout = (fn, ms, ...rest) => originalSetTimeout.call(window, fn, ms + (i -= 20), ...rest)
435+
})
436+
teardown(() => {
456437
window.setTimeout = originalSetTimeout
457-
assert.deepStrictEqual(order, ['loadstart', 'load', 'loadend'])
458-
assert.deepStrictEqual(connected, [true, false, false])
438+
})
439+
440+
test('loading events fire in guaranteed order', function() {
441+
const elem = document.createElement('include-fragment')
442+
const order = []
443+
const connected = []
444+
const events = [
445+
when(elem, 'loadend').then(() => {
446+
order.push('loadend')
447+
connected.push(elem.isConnected)
448+
}),
449+
when(elem, 'load').then(() => {
450+
order.push('load')
451+
connected.push(elem.isConnected)
452+
}),
453+
when(elem, 'loadstart').then(() => {
454+
order.push('loadstart')
455+
connected.push(elem.isConnected)
456+
})
457+
]
458+
elem.src = '/hello'
459+
document.body.appendChild(elem)
460+
461+
return Promise.all(events).then(() => {
462+
assert.deepStrictEqual(order, ['loadstart', 'load', 'loadend'])
463+
assert.deepStrictEqual(connected, [true, false, false])
464+
})
459465
})
460466
})
461467

0 commit comments

Comments
 (0)