prefixGallery = env("GALLERY_PREFIX", "/gallery/"); } /** * Тестируем создание галереи * @test * @return void */ public function createGallery(): string { $response = $this->post(route("admin:gallery:create")); $response->assertStatus(ResponseAlias::HTTP_OK); $response->assertJson(function (AssertableJson $json) { $json ->where('name', function (string $name) { return strlen($name) === 32; }) ->where('files', null); }); self::assertTrue(Storage::exists($this->prefixGallery . $response->json('name'))); return $response->json('name'); } /** * Тестируем список галерей, проверяем наличие созданной * @test * @depends createGallery * @param string $galleryId * @return void */ public function listGallery(string $galleryId): void { $response = $this->get(route("admin:gallery:list")); $response->assertStatus(ResponseAlias::HTTP_OK); $response->assertJsonFragment(['name' => $galleryId, 'files' => null]); } /** * Тестируем загрузку файла * @test * @depends createGallery * @param string $galleryId * @return array */ public function uploadFileInGallery(string $galleryId): array { $response = $this->post( route("admin:file:upload", ['galleryId' => $galleryId]), ['file' => UploadedFile::fake()->image('avatar.jpg')] ); $response->assertStatus(ResponseAlias::HTTP_OK); $response->assertJson(function (AssertableJson $json) use ($galleryId) { $json ->where('fileId', function (string $name) { return strlen($name) === 32 + 4; }) ->where('galleryId', $galleryId); }); self::assertTrue(Storage::exists($this->prefixGallery . $galleryId . "/" . $response->json('fileId'))); return ['fileId' => $response->json('fileId'), 'galleryId' => $galleryId]; } /** * Тестируем удаление файла * @test * @depends uploadFileInGallery * @param array $data * @return void */ public function removeFileInGallery(array $data): void { $response =$this->delete(route("admin:file:remove",$data)); $response->assertStatus(ResponseAlias::HTTP_OK); self::assertNotTrue(Storage::exists($this->prefixGallery . $data['galleryId'] . "/" . $data['fileId'])); } /** * Тестируем удаление галереи * @test * @depends createGallery * @param string $galleryId * @return void */ public function removeGallery(string $galleryId): void { $response =$this->delete(route("admin:gallery:remove",['id'=>$galleryId])); $response->assertStatus(ResponseAlias::HTTP_OK); self::assertNotTrue(Storage::exists($this->prefixGallery . $galleryId)); } }