Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

loginAs randomly fails when browser window is too fast #1152

Closed
alexandru-eftimie opened this issue Jan 3, 2025 · 2 comments
Closed

loginAs randomly fails when browser window is too fast #1152

alexandru-eftimie opened this issue Jan 3, 2025 · 2 comments

Comments

@alexandru-eftimie
Copy link

Dusk Version

8.2

Laravel Version

10.0

PHP Version

8.2

PHPUnit Version

pest 2.36

Database Driver & Version

mysql Ver 8.4.3 for macos14.7 on x86_64 (Homebrew)

Description

public function loginAs($userId, $guard = null)

Fails sometimes if requests follow in very quick succession

I ended up changing the login function

function:

function loginAs(Browser $browser, $user)
{
    retrylogin:
    $browser->visit(route('dusk.login', ['userId' => $user->getKey(), 'guard' => null]))
        ->waitForText('className');

    $response = $browser->visit(route('dusk.user', ['guard' => null], false))
        ->waitForRoute('dusk.user', ['guard' => null]);

    $txt = strip_tags($response->driver->getPageSource());
    if ($txt == '[]') {
        Log::warning("retrying login, not logged, probably moved too fast");
        goto retrylogin;
    }

    $data =  json_decode($txt);
    if ($data->id != $user->getKey()) {
        Log::warning("retrying login, I'm someone else, probably moved too fast");
        goto retrylogin;
    }
}

Steps To Reproduce

even just

$browser->loginAs()->assertAuthenticated();

Both using file and database session drivers

@crynobone
Copy link
Member

Hey there, thanks for reporting this issue.

We'll need more info and/or code to debug this further. Can you please create a repository with the command below, commit the code that reproduces the issue as one separate commit on the main/master branch and share the repository here?

Please make sure that you have the latest version of the Laravel installer in order to run this command. Please also make sure you have both Git & the GitHub CLI tool properly set up.

laravel new bug-report --github="--public"

Do not amend and create a separate commit with your custom changes. After you've posted the repository, we'll try to reproduce the issue.

Thanks!

@crynobone
Copy link
Member

Hey there,

We're closing this issue because it's inactive, already solved, old, or not relevant anymore. Feel free to open up a new issue if you're still experiencing this problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants