5663 i should be able to accept an invite even if i have an inactive workspace (#5839)

- 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
This commit is contained in:
martmull
2024-06-13 11:47:00 +02:00
committed by GitHub
parent d93c2d6408
commit b26fd00a40
30 changed files with 95 additions and 75 deletions

View File

@ -0,0 +1,35 @@
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);
});
});

View File

@ -0,0 +1,8 @@
export const sleep = async (
ms: number,
callback?: (resolve: (value: any) => void) => void,
) =>
new Promise((resolve) => {
const handler = callback ? () => callback(resolve) : resolve;
setTimeout(handler, ms);
});