| <?php |
|
|
| use App\Models\User; |
| use Inertia\Testing\AssertableInertia as Assert; |
| use Laravel\Fortify\Features; |
|
|
| beforeEach(function () { |
| $this->skipUnlessFortifyHas(Features::twoFactorAuthentication()); |
| }); |
|
|
| test('two factor challenge redirects to login when not authenticated', function () { |
| $response = $this->get(route('two-factor.login')); |
|
|
| $response->assertRedirect(route('login')); |
| }); |
|
|
| test('two factor challenge can be rendered', function () { |
| Features::twoFactorAuthentication([ |
| 'confirm' => true, |
| 'confirmPassword' => true, |
| ]); |
|
|
| $user = User::factory()->create(); |
|
|
| $user->forceFill([ |
| 'two_factor_secret' => encrypt('test-secret'), |
| 'two_factor_recovery_codes' => encrypt(json_encode(['code1', 'code2'])), |
| 'two_factor_confirmed_at' => now(), |
| ])->save(); |
|
|
| $this->post(route('login'), [ |
| 'email' => $user->email, |
| 'password' => 'password', |
| ]); |
|
|
| $this->get(route('two-factor.login')) |
| ->assertOk() |
| ->assertInertia(fn (Assert $page) => $page |
| ->component('auth/two-factor-challenge'), |
| ); |
| }); |