koel/tests/Feature/KoelPlus/UploadTest.php

38 lines
985 B
PHP
Raw Normal View History

2024-01-11 12:41:33 +00:00
<?php
namespace Tests\Feature\KoelPlus;
use App\Models\Setting;
use App\Models\Song;
use Illuminate\Http\UploadedFile;
2024-01-18 11:13:05 +00:00
use Tests\PlusTestCase;
2024-01-11 12:41:33 +00:00
use function Tests\create_user;
use function Tests\test_path;
2024-01-18 11:13:05 +00:00
class UploadTest extends PlusTestCase
2024-01-11 12:41:33 +00:00
{
private UploadedFile $file;
public function setUp(): void
{
parent::setUp();
Setting::set('media_path', public_path('sandbox/media'));
$this->file = UploadedFile::fromFile(test_path('songs/full.mp3'), 'song.mp3'); //@phpstan-ignore-line
}
public function testUploads(): void
{
$user = create_user();
$this->postAs('api/upload', ['file' => $this->file], $user)->assertSuccessful();
self::assertDirectoryExists(public_path("sandbox/media/__KOEL_UPLOADS_\${$user->id}__"));
/** @var Song $song */
$song = Song::query()->latest()->first();
self::assertSame($song->owner_id, $user->id);
self::assertFalse($song->is_public);
}
}