Reject request on XHR timeout (#2646)

Co-authored-by: Zachary Hamm <hamm.zachary@gmail.com>
This commit is contained in:
Kevin Fiol 2020-12-23 05:42:03 -05:00 committed by GitHub
parent 2b5c2f0fc6
commit f5b41aaf0f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 120 additions and 23 deletions

View file

@ -677,6 +677,57 @@ o.spec("request", function() {
o(e instanceof Error).equals(true)
}).then(done)
})
o("rejects on request timeout", function(done) {
var timeout = 50
var timeToGetItem = timeout + 1
mock.$defineRoutes({
"GET /item": function() {
return new Promise(function(resolve) {
setTimeout(function() {
resolve({status: 200})
}, timeToGetItem)
})
}
})
request({
method: "GET", url: "/item",
timeout: timeout
}).catch(function(e) {
o(e instanceof Error).equals(true)
o(e.message).equals("Request timed out")
o(e.code).equals(0)
}).then(function() {
done()
})
})
o("does not reject when time to request resource does not exceed timeout", function(done) {
var timeout = 50
var timeToGetItem = timeout - 1
var isRequestRejected = false
mock.$defineRoutes({
"GET /item": function() {
return new Promise(function(resolve) {
setTimeout(function() {
resolve({status: 200})
}, timeToGetItem)
})
}
})
request({
method: "GET", url: "/item",
timeout: timeout
}).catch(function(e) {
isRequestRejected = true
o(e.message).notEquals("Request timed out")
}).then(function() {
o(isRequestRejected).equals(false)
done()
})
})
o("does not reject on status error code when extract provided", function(done) {
mock.$defineRoutes({
"GET /item": function() {