PasswordControllerTest.php 2.0 KB

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