2020-09-03 15:02:23 -04:00
|
|
|
import { promiseTimeout } from '@superset-ui/core/src';
|
2019-09-09 15:50:19 -04:00
|
|
|
|
|
|
|
describe('promiseTimeout(func, delay)', () => {
|
2020-01-28 18:15:31 -05:00
|
|
|
beforeEach(() => {
|
|
|
|
jest.useFakeTimers();
|
|
|
|
});
|
|
|
|
afterEach(() => {
|
|
|
|
jest.useRealTimers();
|
|
|
|
});
|
|
|
|
|
2019-09-09 15:50:19 -04:00
|
|
|
it('resolves after delay', async () => {
|
2020-01-28 18:15:31 -05:00
|
|
|
const promise = promiseTimeout(() => 'abcd', 10);
|
|
|
|
jest.advanceTimersByTime(10);
|
|
|
|
const result = await promise;
|
|
|
|
expect(result).toEqual('abcd');
|
|
|
|
expect(result).toHaveLength(4);
|
2019-09-09 15:50:19 -04:00
|
|
|
});
|
2020-01-28 18:15:31 -05:00
|
|
|
|
2019-09-09 15:50:19 -04:00
|
|
|
it('uses the timer', async () => {
|
2020-01-28 18:15:31 -05:00
|
|
|
const promise = Promise.race([
|
2019-09-09 15:50:19 -04:00
|
|
|
promiseTimeout(() => 'abc', 10),
|
|
|
|
promiseTimeout(() => 'def', 20),
|
|
|
|
]);
|
2020-01-28 18:15:31 -05:00
|
|
|
jest.advanceTimersByTime(10);
|
|
|
|
const result = await promise;
|
2019-09-09 15:50:19 -04:00
|
|
|
expect(result).toEqual('abc');
|
|
|
|
});
|
|
|
|
});
|