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

Skip to content

Commit df80e91

Browse files
committed
Test network lifecycle events
1 parent 7f995ce commit df80e91

File tree

1 file changed

+46
-7
lines changed

1 file changed

+46
-7
lines changed

test/test.js

Lines changed: 46 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ describe('auto-check element', function() {
103103
})
104104
})
105105

106-
describe('requesting server results', function() {
106+
describe('network lifecycle events', function() {
107107
let checker
108108
let input
109109

@@ -125,38 +125,77 @@ describe('auto-check element', function() {
125125
input = null
126126
})
127127

128-
it('emits send event on input', function(done) {
128+
it('emits network events in order', async function() {
129+
const events = []
130+
const track = event => events.push(event.type)
131+
132+
checker.addEventListener('loadstart', track)
133+
checker.addEventListener('load', track)
134+
checker.addEventListener('error', track)
135+
checker.addEventListener('loadend', track)
136+
137+
const completed = Promise.all([once(checker, 'loadstart'), once(checker, 'load'), once(checker, 'loadend')])
138+
triggerChange(input, 'hub')
139+
await completed
140+
141+
assert.deepEqual(['loadstart', 'load', 'loadend'], events)
142+
})
143+
})
144+
145+
describe('auto-check lifecycle events', function() {
146+
let checker
147+
let input
148+
149+
beforeEach(function() {
150+
const container = document.createElement('div')
151+
container.innerHTML = `
152+
<auto-check csrf="foo" src="/success">
153+
<input>
154+
</auto-check>`
155+
document.body.append(container)
156+
157+
checker = document.querySelector('auto-check')
158+
input = checker.querySelector('input')
159+
})
160+
161+
afterEach(function() {
162+
document.body.innerHTML = ''
163+
checker = null
164+
input = null
165+
})
166+
167+
it('emits auto-check-send on input', function(done) {
129168
input.addEventListener('auto-check-send', () => done())
130169
input.value = 'hub'
131170
input.dispatchEvent(new InputEvent('input'))
132171
})
133172

134-
it('emits send event on change', function(done) {
173+
it('emits auto-check-send on change', function(done) {
135174
input.addEventListener('auto-check-send', () => done())
136175
triggerChange(input, 'hub')
137176
})
138177

139-
it('emits success event when server responds with 200 OK', async function() {
178+
it('emits auto-check-success when server responds with 200 OK', async function() {
140179
triggerChange(input, 'hub')
141180
const event = await once(input, 'auto-check-success')
142181
const result = await event.detail.response.text()
143182
assert.equal('This is a warning', result)
144183
})
145184

146-
it('emits error event when server returns an error response', async function() {
185+
it('emits auto-check-error event when server returns an error response', async function() {
147186
checker.src = '/fail'
148187
triggerChange(input, 'hub')
149188
const event = await once(input, 'auto-check-error')
150189
const result = await event.detail.response.text()
151190
assert.equal('This is an error', result)
152191
})
153192

154-
it('emits complete event at the end of the lifecycle', function(done) {
193+
it('emits auto-check-complete event at the end of the lifecycle', function(done) {
155194
input.addEventListener('auto-check-complete', () => done())
156195
triggerChange(input, 'hub')
157196
})
158197

159-
it('emits send event before checking if there is a duplicate request', function(done) {
198+
it('emits auto-check-send event before checking if there is a duplicate request', function(done) {
160199
let counter = 2
161200
input.addEventListener('auto-check-send', () => {
162201
if (counter === 2) {

0 commit comments

Comments
 (0)