Laravel 5.7.28
laravel / dusk 5.0.2
PHPUnit 7.5.6
У меня есть тест для проверки времени ожидания входа в систему:
public function testLoginTimeout()
{
$this->browse(function (Browser $browser) {
$browser->visitRoute('login');
for ($i = 0; $i < 6; $i++)
$browser
->type('name', 'invalidname')
->type('password', 'invalidpass')
->press('Login');
$seconds = app(RateLimiter::class)->availableIn(Str::lower('invalidname') . '|' . request()->ip());
$browser->assertSee(__('auth.throttle', ['seconds' => $seconds]));
});
}
Иногда (~1 тест на 3 попытки) этот тест не пройден из-за несоответствия времени ожидания: ожидаемое
"Слишком много попыток входа в систему. Повторите попытку через 52 секунд."
" Слишком много попыток входа в систему. Повторите попытку через 51 секунд. "
, но фактическим является
"Слишком много попыток входа в систему. Повторите попытку через 53 секунд."
Как я могу это исправить?
Я получаю $seconds
прямо как они извлекаются в framework core .
PS В этомТестовый класс У меня есть несколько других методов тестирования.Я пытался удалить их и оставить testLoginTimeout
в покое.Не помогло.