Browse Source

Add test for published stubs usage

pull/30/head
Nafies Luthfi 5 years ago
parent
commit
22f2bd6c16
  1. 42
      tests/Generators/ModelFactoryGeneratorTest.php
  2. 25
      tests/stubs/database/factories/model-factory.stub

42
tests/Generators/ModelFactoryGeneratorTest.php

@ -39,4 +39,46 @@ class {$this->model_name}Factory extends Factory
";
$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'));
}
}

25
tests/stubs/database/factories/model-factory.stub

@ -0,0 +1,25 @@
<?php
declare(strict_types = 1);
namespace Database\Factories;
use App\Models\User;
use fullMstr;
use Illuminate\Database\Eloquent\Factories\Factory;
class MasterFactory extends Factory
{
protected $model = Master::class;
public function definition()
{
return [
'title' => $this->faker->word,
'description' => $this->faker->sentence,
'creator_id' => function () {
return User::factory()->create()->id;
},
];
}
}
Loading…
Cancel
Save