create([ 'email' => $email, 'password' => bcrypt('password'), 'two_factor_secret' => null, 'two_factor_recovery_codes' => null, ]); } private function loginUser(Browser $browser, User $user): void { $browser->visit('/login') ->type('email', $user->email) ->type('password', 'password') ->press('Log in') ->waitForLocation('/dashboard'); } public function test_login(): void { $user = $this->createTestUser("login-test@example.com"); $this->browse(function (Browser $browser) use ($user) { $this->loginUser($browser, $user); try { $browser->assertPathIs('/dashboard'); // Or wherever successful login redirects } catch (\Exception $e) { $browser->pause(10000); // Pause for 10 seconds on failure to debug throw $e; } }); } /* public function test_invalid_login(): void { $user = $this->createTestUser("invalid-email@example.com"); $this->browse(function (Browser $browser) use ($user) { $this->loginUser($browser, $user); try { $browser->visit('/admin') ->waitForLocation('/admin') ->assertPathIs('/admin') ->assertTitleContains('Dashboard') ->assertDontSee('Forbidden') ->pause(1000); } catch (\Exception $e) { $browser->pause(1000); // Pause for 1 second on failure to debug throw $e; } }); } */ public function test_access_admin_panel(): void { $user = $this->createTestUser("login-test@example.com"); $this->browse(function (Browser $browser) use ($user) { $this->loginUser($browser, $user); try { $browser->visit('/admin') ->waitForLocation('/admin') ->assertPathIs('/admin') ->assertTitleContains('Dashboard') ->assertDontSee('Forbidden') ->pause(1000); } catch (\Exception $e) { $browser->pause(1000); // Pause for 1 second on failure to debug throw $e; } }); } }