superset/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/utils/promiseTimeout.test.ts

29 lines
726 B
TypeScript
Raw Normal View History

import { promiseTimeout } from '@superset-ui/core/src';
2019-09-09 15:50:19 -04:00
describe('promiseTimeout(func, delay)', () => {
beforeEach(() => {
jest.useFakeTimers();
});
afterEach(() => {
jest.useRealTimers();
});
2019-09-09 15:50:19 -04:00
it('resolves after delay', async () => {
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
});
2019-09-09 15:50:19 -04:00
it('uses the timer', async () => {
const promise = Promise.race([
2019-09-09 15:50:19 -04:00
promiseTimeout(() => 'abc', 10),
promiseTimeout(() => 'def', 20),
]);
jest.advanceTimersByTime(10);
const result = await promise;
2019-09-09 15:50:19 -04:00
expect(result).toEqual('abc');
});
});