auth()->registerModel()->withoutExceptionHandling(); $content = base64_encode($this->pdfFile()->getContent()); $payload = [ 'parent' => ['model' => 'post', 'collection' => 'defaultSingleFile', 'id' => null], 'payload' => [ 'content' => $content, 'name' => 'beispiel bild.jpg', ], ]; $this->postJson('/mediaupload', $payload) ->assertStatus(201) ->assertJson([ 'is_deferred' => true, 'original_url' => Storage::disk('temp')->url('media-library/beispiel bild.jpg'), 'name' => 'beispiel bild', 'collection_name' => 'defaultSingleFile', 'size' => 3028, 'file_name' => 'beispiel bild.jpg', 'mime_type' => 'application/pdf', ]); Storage::disk('temp')->assertExists('media-library/beispiel bild.jpg'); }); test('it handles authorization with collection', function () { $this->auth(['storeMedia' => ['collection' => 'rtrt']])->registerModel(); $content = base64_encode($this->pdfFile()->getContent()); $this->postJson('/mediaupload', [ 'parent' => ['model' => 'post', 'collection' => 'defaultSingleFile', 'id' => null], 'payload' => [ 'content' => $content, 'name' => 'beispiel bild.jpg', ], ])->assertStatus(403); }); test('it handles authorization with collection correctly', function () { $this->auth(['storeMedia' => ['collection' => 'defaultSingleFile']])->registerModel(); $content = base64_encode($this->pdfFile()->getContent()); $this->postJson('/mediaupload', [ 'parent' => ['model' => 'post', 'collection' => 'defaultSingleFile', 'id' => null], 'payload' => [ 'content' => $content, 'name' => 'beispiel bild.jpg', ], ])->assertStatus(201); }); test('it needs a collection', function ($key, $value) { $this->auth()->registerModel(); $content = base64_encode($this->pdfFile()->getContent()); $payload = [ 'parent' => ['model' => 'post', 'collection' => '', 'id' => null], 'payload' => [ 'content' => $content, 'name' => 'beispiel bild.jpg', ], ]; data_set($payload, $key, $value); $this->postJson('/mediaupload', $payload)->assertJsonValidationErrors($key); })->with(function () { yield ['parent.collection', '']; yield ['parent.collection', -1]; yield ['parent.collection', 'missingcollection']; yield ['parent.model', 'lalala']; yield ['parent.model', -1]; yield ['parent.model', '']; });