PasswordUpdateTest.php (1385B)
1 <?php 2 3 namespace Tests\Feature\Auth; 4 5 use App\Models\User; 6 use Illuminate\Foundation\Testing\RefreshDatabase; 7 use Illuminate\Support\Facades\Hash; 8 use Livewire\Volt\Volt; 9 use Tests\TestCase; 10 11 class PasswordUpdateTest extends TestCase 12 { 13 use RefreshDatabase; 14 15 public function test_password_can_be_updated(): void 16 { 17 $user = User::factory()->create(); 18 19 $this->actingAs($user); 20 21 $component = Volt::test('profile.update-password-form') 22 ->set('current_password', 'password') 23 ->set('password', 'new-password') 24 ->set('password_confirmation', 'new-password') 25 ->call('updatePassword'); 26 27 $component 28 ->assertHasNoErrors() 29 ->assertNoRedirect(); 30 31 $this->assertTrue(Hash::check('new-password', $user->refresh()->password)); 32 } 33 34 public function test_correct_password_must_be_provided_to_update_password(): void 35 { 36 $user = User::factory()->create(); 37 38 $this->actingAs($user); 39 40 $component = Volt::test('profile.update-password-form') 41 ->set('current_password', 'wrong-password') 42 ->set('password', 'new-password') 43 ->set('password_confirmation', 'new-password') 44 ->call('updatePassword'); 45 46 $component 47 ->assertHasErrors(['current_password']) 48 ->assertNoRedirect(); 49 } 50 }