mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2025-07-28 11:00:08 +02:00
43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
describe('AbortSignal polyfills', function () {
|
|
before(function () {
|
|
// @ts-expect-error deleting a required method
|
|
delete AbortSignal.any
|
|
// @ts-expect-error deleting a required method
|
|
delete AbortSignal.timeout
|
|
// this polyfill provides the required methods
|
|
cy.wrap(import('@/utils/abortsignal-polyfill'))
|
|
})
|
|
|
|
describe('AbortSignal.any', function () {
|
|
it('aborts the new signal immediately if one of the signals is aborted already', function () {
|
|
const controller1 = new AbortController()
|
|
const controller2 = new AbortController()
|
|
|
|
controller1.abort()
|
|
const signal = AbortSignal.any([controller1.signal, controller2.signal])
|
|
|
|
cy.wrap(signal.aborted).should('be.true')
|
|
})
|
|
|
|
it('aborts the new signal asynchronously if one of the signals is aborted later', function () {
|
|
const controller1 = new AbortController()
|
|
const controller2 = new AbortController()
|
|
|
|
const signal = AbortSignal.any([controller1.signal, controller2.signal])
|
|
controller1.abort()
|
|
|
|
cy.wrap(signal.aborted).should('be.true')
|
|
})
|
|
})
|
|
|
|
describe('AbortSignal.timeout', function () {
|
|
it('aborts the signal after the timeout', function () {
|
|
cy.clock().then(clock => {
|
|
const signal = AbortSignal.timeout(1000)
|
|
cy.wrap(signal.aborted).should('be.false')
|
|
clock.tick(1000)
|
|
cy.wrap(signal.aborted).should('be.true')
|
|
})
|
|
})
|
|
})
|
|
})
|