@ -39,4 +39,46 @@ class {$this->model_name}Factory extends Factory
" ;
" ;
$this -> assertEquals ( $modelFactoryContent , file_get_contents ( $modelFactoryPath ));
$this -> assertEquals ( $modelFactoryContent , file_get_contents ( $modelFactoryPath ));
}
}
/** @test */
public function it_creates_model_factory_file_content_from_published_stub ()
{
app ( 'files' ) -> makeDirectory ( base_path ( 'stubs/simple-crud/database/factories' ), 0777 , true , true );
app ( 'files' ) -> copy (
__DIR__ . '/../stubs/database/factories/model-factory.stub' ,
base_path ( 'stubs/simple-crud/database/factories/model-factory.stub' )
);
$this -> artisan ( 'make:crud' , [ 'name' => $this -> model_name , '--no-interaction' => true ]);
$modelFactoryPath = database_path ( 'factories/' . $this -> model_name . 'Factory.php' );
$this -> assertFileExists ( $modelFactoryPath );
$modelFactoryContent = " <?php
declare ( strict_types = 1 );
namespace Database\Factories ;
use App\Models\User ;
use { $this -> full_model_name };
use Illuminate\Database\Eloquent\Factories\Factory ;
class { $ this -> model_name } Factory extends Factory
{
protected \ $model = { $this -> model_name } :: class ;
public function definition ()
{
return [
'title' => \ $this -> faker -> word ,
'description' => \ $this -> faker -> sentence ,
'creator_id' => function () {
return User :: factory () -> create () -> id ;
},
];
}
}
" ;
$this -> assertEquals ( $modelFactoryContent , file_get_contents ( $modelFactoryPath ));
$this -> removeFileOrDir ( base_path ( 'stubs' ));
}
}
}