FolderTest.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace Tests\Feature\API;
  3. use App\Models\Folder;
  4. use App\Models\Library;
  5. use Illuminate\Foundation\Testing\RefreshDatabase;
  6. use Illuminate\Foundation\Testing\WithFaker;
  7. use Tests\Feature\TestCase;
  8. class FolderTest extends TestCase
  9. {
  10. public function test_create_folder(): void
  11. {
  12. $response = $this->postJson(route('folder.store'), [
  13. 'library_id' => Library::factory()->create()->id,
  14. 'parent_id' => 0,
  15. 'items' => [
  16. ['name' => fake()->name(), 'sequence' => 0],
  17. ['name' => fake()->name(), 'sequence' => 0],
  18. ]
  19. ]);
  20. $response->assertStatus(201);
  21. }
  22. protected function test_folder_list()
  23. {
  24. Folder::factory(30)->create();
  25. $response = $this->get(route('folder.index'));
  26. $response->assertStatus(200)
  27. ->assertJsonStructure([
  28. 'data' => [
  29. '*' => [
  30. 'id',
  31. 'name',
  32. 'global',
  33. 'status',
  34. 'company'
  35. ]
  36. ]
  37. ]);
  38. }
  39. public function test_folder_show(): void
  40. {
  41. $folder = Folder::factory()->create();
  42. $response = $this->getJson(route('folder.show', ['folder' => $folder->id]));
  43. $response->assertStatus(200)
  44. ->assertJsonStructure([
  45. 'data' => [
  46. 'library_id',
  47. 'name',
  48. 'parent_id',
  49. 'sequence',
  50. ]
  51. ]);
  52. }
  53. public function test_folder_update(): void
  54. {
  55. $folder = Folder::factory()->create();
  56. $form = Folder::factory()->make();
  57. $response = $this->patchJson(route('folder.update', ['folder' => $folder->id]), $form->toArray());
  58. $response->assertStatus(204);
  59. $newAsset = Folder::find($folder->id);
  60. $this->assertEquals($form->name, $newAsset->name);
  61. }
  62. public function test_folder_delete(): void
  63. {
  64. $folder = Folder::factory()->create();
  65. $response = $this->deleteJson(route('folder.destroy', ['folder' => $folder->id]));
  66. $response->assertStatus(204);
  67. $this->assertNull(Folder::find($folder->id));
  68. }
  69. }