import {Simulate} from 'react-dom/test-utils'; import {act} from '../actCompat'; export const slowType = async (base: HTMLInputElement, value: string, delayMs: number) => { const {name, type} = base; let currentValue = ''; // eslint-disable-next-line @typescript-eslint/prefer-for-of for (let i = 0; i < value.length; i++) { currentValue += value[i]!; /* eslint-disable @typescript-eslint/no-misused-promises */ await act(async () => { Simulate.change(base, { target: {name, type, value: currentValue} as HTMLInputElement, }); }); await act(async () => { await new Promise((resolve) => setTimeout(resolve, delayMs)); }); } };