Laravel Dusk - несоответствие времени при тестировании тайм-аута входа - PullRequest
0 голосов
/ 15 марта 2019

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 в покое.Не помогло.

...