. */ use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\DatabaseMigrations; use Poniverse\Ponyfm\User; class ApiTest extends TestCase { use DatabaseMigrations; use WithoutMiddleware; public function testUploadWithoutFile() { $user = factory(User::class)->create(); $this->actingAs($user) ->post('/api/v1/tracks', []) ->seeJsonEquals([ 'errors' => [ 'track' => ['You must upload an audio file!'] ], 'message' => 'Validation failed' ]); $this->assertResponseStatus(400); } public function testUploadWithFile() { $this->expectsJobs(Poniverse\Ponyfm\Jobs\EncodeTrackFile::class); $user = factory(User::class)->create(); $file = $this->getTestFileForUpload('ponyfm-test.flac'); $this->actingAs($user) ->call('POST', '/api/v1/tracks', [], [], ['track' => $file]); $this->assertResponseStatus(202); $this->seeJsonEquals([ 'message' => "This track has been accepted for processing! Poll the status_url to know when it's ready to publish.", 'id' => 1, 'status_url' => "http://ponyfm-testing.poni/api/v1/tracks/1/upload-status" ]); } }