IconControllerTest.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace Tests\Api\v1\Controllers;
  3. use Illuminate\Http\UploadedFile;
  4. use Illuminate\Foundation\Testing\WithoutMiddleware;
  5. use Tests\FeatureTestCase;
  6. use App\Models\TwoFAccount;
  7. /**
  8. * @covers \App\Api\v1\Controllers\IconController
  9. */
  10. class IconControllerTest extends FeatureTestCase
  11. {
  12. use WithoutMiddleware;
  13. /**
  14. * @test
  15. */
  16. public function test_upload_icon_returns_filename()
  17. {
  18. $file = UploadedFile::fake()->image('testIcon.jpg');
  19. $response = $this->json('POST', '/api/v1/icons', [
  20. 'icon' => $file,
  21. ])
  22. ->assertCreated()
  23. ->assertJsonStructure([
  24. 'filename'
  25. ]);
  26. }
  27. /**
  28. * @test
  29. */
  30. public function test_upload_with_invalid_data_returns_validation_error()
  31. {
  32. $response = $this->json('POST', '/api/v1/icons', [
  33. 'icon' => null,
  34. ])
  35. ->assertStatus(422);
  36. }
  37. /**
  38. * @test
  39. */
  40. public function test_delete_icon_returns_success()
  41. {
  42. $response = $this->json('DELETE', '/api/v1/icons/testIcon.jpg')
  43. ->assertNoContent(204);
  44. }
  45. /**
  46. * @test
  47. */
  48. public function test_delete_invalid_icon_returns_success()
  49. {
  50. $response = $this->json('DELETE', '/api/v1/icons/null')
  51. ->assertNoContent(204);
  52. }
  53. }