RegisterControllerTest.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace Tests\Feature\Auth;
  3. use Tests\FeatureTestCase;
  4. class RegisterControllerTest extends FeatureTestCase
  5. {
  6. private const USERNAME = 'john doe';
  7. private const EMAIL = 'johndoe@example.org';
  8. private const PASSWORD = 'password';
  9. /**
  10. * @test
  11. */
  12. public function setUp(): void
  13. {
  14. parent::setUp();
  15. }
  16. /**
  17. * @test
  18. */
  19. public function test_register_returns_success()
  20. {
  21. $response = $this->json('POST', '/user', [
  22. 'name' => self::USERNAME,
  23. 'email' => self::EMAIL,
  24. 'password' => self::PASSWORD,
  25. 'password_confirmation' => self::PASSWORD,
  26. ])
  27. ->assertCreated()
  28. ->assertJsonStructure([
  29. 'message',
  30. 'name',
  31. ])
  32. ->assertJsonFragment([
  33. 'name' => self::USERNAME,
  34. ]);
  35. }
  36. /**
  37. * @test
  38. */
  39. public function test_register_with_invalid_data_returns_validation_error()
  40. {
  41. $response = $this->json('POST', '/user', [
  42. 'name' => null,
  43. 'email' => self::EMAIL,
  44. 'password' => self::PASSWORD,
  45. 'password_confirmation' => self::PASSWORD,
  46. ])
  47. ->assertStatus(422);
  48. }
  49. }