PasswordControllerTest.php 1.9 KB

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