createOne(); $this->assertIsString($script->getName()); }); test('has subtitle', function () { $script = VideoScript::factory() ->for(Video::factory()) ->createOne(); $this->assertIsString($script->getSubtitle()); }); test('video', function () { $script = VideoScript::factory() ->for(Video::factory()) ->createOne(); $this->assertInstanceOf(BelongsTo::class, $script->video()); $this->assertInstanceOf(Video::class, $script->video()->first()); }); test('script storage deletion', function () { $fs = Storage::fake(Config::get(VideoConstants::SCRIPT_DISK_QUALIFIED)); $file = File::fake()->create(fake()->word().'.ogg', fake()->randomDigitNotNull()); $fsFile = $fs->putFile('', $file); $script = VideoScript::factory()->createOne([ VideoScript::ATTRIBUTE_PATH => $fsFile, ]); $script->delete(); $this->assertTrue($fs->exists($script->path)); }); test('script storage force deletion', function () { Event::fakeExcept(VideoScriptForceDeleting::class); $fs = Storage::fake(Config::get(VideoConstants::SCRIPT_DISK_QUALIFIED)); $file = File::fake()->create(fake()->word().'.ogg', fake()->randomDigitNotNull()); $fsFile = $fs->putFile('', $file); $script = VideoScript::factory()->createOne([ VideoScript::ATTRIBUTE_PATH => $fsFile, ]); $script->forceDelete(); $this->assertFalse($fs->exists($script->path)); });