You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
842 B
30 lines
842 B
|
2 years ago
|
import { describe, expect, it } from '@jest/globals'
|
||
|
|
import settle from './settle.js'
|
||
|
|
|
||
|
|
describe('settle', () => {
|
||
|
|
it('should resolve even if all input promises reject', async () => {
|
||
|
|
await expect(
|
||
|
|
settle([
|
||
|
|
Promise.reject(new Error('oops')),
|
||
|
|
Promise.reject(new Error('this went wrong')),
|
||
|
|
]),
|
||
|
|
).resolves.toMatchObject({
|
||
|
|
successful: [],
|
||
|
|
failed: [new Error('oops'), new Error('this went wrong')],
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
it('should resolve with an object if some input promises resolve', async () => {
|
||
|
|
await expect(
|
||
|
|
settle([
|
||
|
|
Promise.reject(new Error('rejected')),
|
||
|
|
Promise.resolve('resolved'),
|
||
|
|
Promise.resolve('also-resolved'),
|
||
|
|
]),
|
||
|
|
).resolves.toMatchObject({
|
||
|
|
successful: ['resolved', 'also-resolved'],
|
||
|
|
failed: [new Error('rejected')],
|
||
|
|
})
|
||
|
|
})
|
||
|
|
})
|