UpdatePasswordTest.php 1.9 KB

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