PasswordControllerTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace Tests\Feature\Auth;
  3. use App\Models\User;
  4. use Tests\FeatureTestCase;
  5. class PasswordControllerTest extends FeatureTestCase
  6. {
  7. /**
  8. * @var \App\Models\User
  9. */
  10. protected $user;
  11. private const PASSWORD = 'password';
  12. private const NEW_PASSWORD = 'newPassword';
  13. /**
  14. * @test
  15. */
  16. public function setUp(): void
  17. {
  18. parent::setUp();
  19. $this->user = User::factory()->create();
  20. }
  21. /**
  22. * @test
  23. */
  24. public function test_update_return_success()
  25. {
  26. $response = $this->actingAs($this->user, 'web-guard')
  27. ->json('PATCH', '/user/password', [
  28. 'currentPassword' => self::PASSWORD,
  29. 'password' => self::NEW_PASSWORD,
  30. 'password_confirmation' => self::NEW_PASSWORD,
  31. ])
  32. ->assertOk()
  33. ->assertJsonStructure([
  34. 'message',
  35. ]);
  36. }
  37. /**
  38. * @test
  39. */
  40. public function test_update_passing_bad_current_pwd_return_bad_request()
  41. {
  42. $response = $this->actingAs($this->user, 'web-guard')
  43. ->json('PATCH', '/user/password', [
  44. 'currentPassword' => self::NEW_PASSWORD,
  45. 'password' => self::NEW_PASSWORD,
  46. 'password_confirmation' => self::NEW_PASSWORD,
  47. ])
  48. ->assertStatus(400)
  49. ->assertJsonStructure([
  50. 'message',
  51. ]);
  52. }
  53. /**
  54. * @test
  55. */
  56. public function test_update_passing_invalid_data_return_validation_error()
  57. {
  58. $response = $this->actingAs($this->user, 'web-guard')
  59. ->json('PATCH', '/user/password', [
  60. 'currentPassword' => self::PASSWORD,
  61. 'password' => null,
  62. 'password_confirmation' => self::NEW_PASSWORD,
  63. ])
  64. ->assertStatus(422);
  65. }
  66. }