Skip to content

Commit 0d4522c

Browse files
authored
Merge pull request #24 from github/content-type-in-payload
Set content type in error event payload
2 parents 72e84e0 + c4566cf commit 0d4522c

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

src/index.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ function check(autoCheckElement: AutoCheckElement) {
131131
if (error.statusCode === 422 && error.responseText) {
132132
if (error.contentType.includes('application/json')) {
133133
validity = JSON.parse(error.responseText).text
134-
} else {
134+
} else if (error.contentType.includes('text/plain')) {
135135
validity = error.responseText
136136
}
137137
}
@@ -140,7 +140,12 @@ function check(autoCheckElement: AutoCheckElement) {
140140
input.setCustomValidity(validity)
141141
}
142142
autoCheckElement.dispatchEvent(new CustomEvent('error'))
143-
input.dispatchEvent(new CustomEvent('auto-check-error', {detail: {message: error.responseText}, bubbles: true}))
143+
input.dispatchEvent(
144+
new CustomEvent('auto-check-error', {
145+
detail: {message: error.responseText, contentType: error.contentType},
146+
bubbles: true
147+
})
148+
)
144149
})
145150
.then(always, always)
146151
}

test/test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,5 +180,22 @@ describe('auto-check element', function() {
180180
assert.deepEqual('This is a warning', result)
181181
})
182182
})
183+
184+
describe('`auto-check-error` event', function() {
185+
it('includes `Content-Type` header in event payload', function() {
186+
return new Promise(resolve => {
187+
const autoCheck = document.querySelector('auto-check')
188+
const input = document.querySelector('input')
189+
autoCheck.src = '/fail'
190+
input.value = 'hub'
191+
input.dispatchEvent(new InputEvent('change'))
192+
input.addEventListener('auto-check-error', event => {
193+
resolve(event.detail.contentType)
194+
})
195+
}).then(contentType => {
196+
assert.equal('application/json', contentType)
197+
})
198+
})
199+
})
183200
})
184201
})

0 commit comments

Comments
 (0)