- make invitation and reset password available on every page - add a sleep after setKeyPair as tokens are sometimes not updated when redirecting to Index - refactor sleep
36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { sleep } from '~/utils/sleep';
|
|
|
|
jest.useFakeTimers();
|
|
describe('sleep', () => {
|
|
it('waits the provided number of milliseconds', async () => {
|
|
const spy = jest.fn();
|
|
const promise = sleep(1000).then(spy);
|
|
|
|
jest.advanceTimersByTime(999);
|
|
expect(spy).not.toHaveBeenCalled();
|
|
jest.advanceTimersByTime(1);
|
|
await promise; // let queued promises execute
|
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
});
|
|
|
|
it('call callback after the wait', async () => {
|
|
const spy = jest.fn();
|
|
let increment = 1;
|
|
const callback = jest.fn((resolve) => {
|
|
increment += 1;
|
|
resolve();
|
|
});
|
|
const promise = sleep(1000, callback).then(spy);
|
|
|
|
jest.advanceTimersByTime(999);
|
|
expect(spy).not.toHaveBeenCalled();
|
|
expect(callback).not.toHaveBeenCalled();
|
|
expect(increment).toEqual(1);
|
|
jest.advanceTimersByTime(1);
|
|
await promise; // let queued promises execute
|
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
expect(callback).toHaveBeenCalledTimes(1);
|
|
expect(increment).toEqual(2);
|
|
});
|
|
});
|