Syntax previewClick to edit
1234
export default function createDeferred() {
throw new Error('Not implemented');
}
Syntax previewClick to edit
12345678910111213141516171819202122232425262728293031
import createDeferred from './createDeferred';
describe('createDeferred', () => {
test('resolves when resolve is called', async () => {
const d = createDeferred();
d.resolve(123);
const out = await d.promise;
expect(out).toBe(123);
});
test('rejects when reject is called', async () => {
const d = createDeferred();
const err = new Error('nope');
d.reject(err);
try {
await d.promise;
throw new Error('Expected promise to reject');
} catch (e) {
expect(e).toBe(err);
}
});
test('adopts another promise when resolving', async () => {
const d = createDeferred();
d.resolve(Promise.resolve('ok'));
const out = await d.promise;
expect(out).toBe('ok');
});
});
Run tests to see results.