Напиши функцию waitFor(cond, interval, timeout), которая возвращает промис. Вызови cond() сразу и потом вызывай каждые interval миллисекунд.
Как только cond() вернёт true, промис выполняется. Если прошло timeout миллисекунд, а условие всё ещё false, промис отклоняется с ошибкой new Error('Timeout'). В обоих случаях проверки прекращаются.
await waitFor(() => true, 50, 500)Вернёт undefined
await waitFor(() => false, 50, 200).catch((e) => e.message)Вернёт 'Timeout'
Скрытые тесты запускаются по Submit.