'App\Models\User']);
$this->artisan('make:crud', ['name' => $this->model_name, '--no-interaction' => true]);
$modelPath = app_path('Models/'.$this->model_name.'.php');
$this->assertFileExists($modelPath);
$modelClassContent = "model_name} extends Model
{
use HasFactory;
protected \$fillable = ['title', 'description', 'creator_id'];
public function getTitleLinkAttribute()
{
\$title = __('app.show_detail_title', [
'title' => \$this->title, 'type' => __('{$this->lang_name}.{$this->lang_name}'),
]);
\$link = 'table_name}.show', \$this).'\"';
\$link .= ' title=\"'.\$title.'\">';
\$link .= \$this->title;
\$link .= '';
return \$link;
}
public function creator()
{
return \$this->belongsTo(User::class);
}
}
";
$this->assertEquals($modelClassContent, file_get_contents($modelPath));
}
/** @test */
public function it_creates_correct_namespaced_model_class_content()
{
config(['auth.providers.users.model' => 'App\Models\User']);
$this->artisan('make:crud', ['name' => 'Entities/References/Category', '--no-interaction' => true]);
$modelPath = app_path('Entities/References/Category.php');
$this->assertFileExists($modelPath);
$modelClassContent = " \$this->title, 'type' => __('category.category'),
]);
\$link = '';
\$link .= \$this->title;
\$link .= '';
return \$link;
}
public function creator()
{
return \$this->belongsTo(User::class);
}
}
";
$this->assertEquals($modelClassContent, file_get_contents($modelPath));
// tearDown
$this->removeFileOrDir(resource_path('views/categories'));
$this->removeFileOrDir(resource_path("lang/en/category.php"));
}
/** @test */
public function it_doesnt_override_the_existing_model()
{
$this->mockConsoleOutput = true;
config(['auth.providers.users.model' => 'App\Models\User']);
$this->artisan('make:model', ['name' => 'Models/'.$this->model_name, '--no-interaction' => true]);
$this->artisan('make:crud', ['name' => $this->model_name, '--no-interaction' => true])
->expectsQuestion('Model file exists, are you sure to generate CRUD files?', true);
$modelPath = app_path('Models/'.$this->model_name.'.php');
$this->assertFileExists($modelPath);
$modelClassContent = "model_name} extends Model
{
use HasFactory;
}
";
$this->assertEquals($modelClassContent, file_get_contents($modelPath));
}
}