Skip to content

Commit 0d05c01

Browse files
authored
feat: Fixed factories for Laravel 8 (#906)
* Fixed factories for Laravel 8 In Laravel 8 models have to implement HasFactory trait, and factory(Model::class) is replaced by Model::factory() * Update ModelGenerator.php Fixed styleci errors * Update ModelGenerator.php Removed extra space for styleci fixing. * Update ModelGenerator.php Removed extra spaces
1 parent 2b72636 commit 0d05c01

File tree

4 files changed

+33
-11
lines changed

4 files changed

+33
-11
lines changed

src/Generators/ModelGenerator.php

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ private function fillTemplate($templateData)
6161

6262
$templateData = $this->fillSoftDeletes($templateData);
6363

64+
$templateData = $this->fillHasFactory($templateData);
65+
6466
$fillables = [];
6567
$primaryKey = 'id';
6668

@@ -114,7 +116,7 @@ private function fillSoftDeletes($templateData)
114116
} else {
115117
$templateData = str_replace(
116118
'$SOFT_DELETE_IMPORT$',
117-
"use Illuminate\\Database\\Eloquent\\SoftDeletes;\n",
119+
'use Illuminate\Database\Eloquent\SoftDeletes;',
118120
$templateData
119121
);
120122
$templateData = str_replace('$SOFT_DELETE$', infy_tab()."use SoftDeletes;\n", $templateData);
@@ -129,6 +131,23 @@ private function fillSoftDeletes($templateData)
129131
return $templateData;
130132
}
131133

134+
private function fillHasFactory($templateData)
135+
{
136+
if (!$this->commandData->getAddOn('tests')) {
137+
$templateData = str_replace('$HAS_FACTORY_IMPORT$', '', $templateData);
138+
$templateData = str_replace('$HAS_FACTORY$', '', $templateData);
139+
} else {
140+
$templateData = str_replace(
141+
'$HAS_FACTORY_IMPORT$',
142+
'use Illuminate\Database\Eloquent\Factories\HasFactory;',
143+
$templateData
144+
);
145+
$templateData = str_replace('$HAS_FACTORY$', infy_tab()."use HasFactory;\n", $templateData);
146+
}
147+
148+
return $templateData;
149+
}
150+
132151
private function fillDocs($templateData)
133152
{
134153
if ($this->commandData->getAddOn('swagger')) {

templates/api/test/api_test.stub

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class $MODEL_NAME$ApiTest extends TestCase
1515
*/
1616
public function test_create_$MODEL_NAME_SNAKE$()
1717
{
18-
$$MODEL_NAME_CAMEL$ = factory($MODEL_NAME$::class)->make()->toArray();
18+
$$MODEL_NAME_CAMEL$ = $MODEL_NAME$::factory()->make()->toArray();
1919

2020
$this->response = $this->json(
2121
'POST',
@@ -30,7 +30,7 @@ class $MODEL_NAME$ApiTest extends TestCase
3030
*/
3131
public function test_read_$MODEL_NAME_SNAKE$()
3232
{
33-
$$MODEL_NAME_CAMEL$ = factory($MODEL_NAME$::class)->create();
33+
$$MODEL_NAME_CAMEL$ = $MODEL_NAME$::factory()->create();
3434

3535
$this->response = $this->json(
3636
'GET',
@@ -45,8 +45,8 @@ class $MODEL_NAME$ApiTest extends TestCase
4545
*/
4646
public function test_update_$MODEL_NAME_SNAKE$()
4747
{
48-
$$MODEL_NAME_CAMEL$ = factory($MODEL_NAME$::class)->create();
49-
$edited$MODEL_NAME$ = factory($MODEL_NAME$::class)->make()->toArray();
48+
$$MODEL_NAME_CAMEL$ = $MODEL_NAME$::factory()->create();
49+
$edited$MODEL_NAME$ = $MODEL_NAME$::factory()->make()->toArray();
5050

5151
$this->response = $this->json(
5252
'PUT',
@@ -62,7 +62,7 @@ class $MODEL_NAME$ApiTest extends TestCase
6262
*/
6363
public function test_delete_$MODEL_NAME_SNAKE$()
6464
{
65-
$$MODEL_NAME_CAMEL$ = factory($MODEL_NAME$::class)->create();
65+
$$MODEL_NAME_CAMEL$ = $MODEL_NAME$::factory()->create();
6666

6767
$this->response = $this->json(
6868
'DELETE',

templates/model/model.stub

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@ namespace $NAMESPACE_MODEL$;
44

55
use $NAMESPACE_MODEL_EXTEND$ as Model;
66
$SOFT_DELETE_IMPORT$
7+
$HAS_FACTORY_IMPORT$
8+
79
$DOCS$
810
class $MODEL_NAME$ extends Model
911
{
1012
$SOFT_DELETE$
13+
$HAS_FACTORY$
1114
public $table = '$TABLE_NAME$';
1215
$TIMESTAMPS$
1316
$SOFT_DELETE_DATES$

templates/test/repository_test.stub

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class $MODEL_NAME$RepositoryTest extends TestCase
2626
*/
2727
public function test_create_$MODEL_NAME_SNAKE$()
2828
{
29-
$$MODEL_NAME_CAMEL$ = factory($MODEL_NAME$::class)->make()->toArray();
29+
$$MODEL_NAME_CAMEL$ = $MODEL_NAME$::factory()->make()->toArray();
3030

3131
$created$MODEL_NAME$ = $this->$MODEL_NAME_CAMEL$Repo->create($$MODEL_NAME_CAMEL$);
3232

@@ -42,7 +42,7 @@ class $MODEL_NAME$RepositoryTest extends TestCase
4242
*/
4343
public function test_read_$MODEL_NAME_SNAKE$()
4444
{
45-
$$MODEL_NAME_CAMEL$ = factory($MODEL_NAME$::class)->create();
45+
$$MODEL_NAME_CAMEL$ = $MODEL_NAME$::factory()->create();
4646

4747
$db$MODEL_NAME$ = $this->$MODEL_NAME_CAMEL$Repo->find($$MODEL_NAME_CAMEL$->$PRIMARY_KEY_NAME$);
4848

@@ -55,8 +55,8 @@ class $MODEL_NAME$RepositoryTest extends TestCase
5555
*/
5656
public function test_update_$MODEL_NAME_SNAKE$()
5757
{
58-
$$MODEL_NAME_CAMEL$ = factory($MODEL_NAME$::class)->create();
59-
$fake$MODEL_NAME$ = factory($MODEL_NAME$::class)->make()->toArray();
58+
$$MODEL_NAME_CAMEL$ = $MODEL_NAME$::factory()->create();
59+
$fake$MODEL_NAME$ = $MODEL_NAME$::factory()->make()->toArray();
6060

6161
$updated$MODEL_NAME$ = $this->$MODEL_NAME_CAMEL$Repo->update($fake$MODEL_NAME$, $$MODEL_NAME_CAMEL$->$PRIMARY_KEY_NAME$);
6262

@@ -70,7 +70,7 @@ class $MODEL_NAME$RepositoryTest extends TestCase
7070
*/
7171
public function test_delete_$MODEL_NAME_SNAKE$()
7272
{
73-
$$MODEL_NAME_CAMEL$ = factory($MODEL_NAME$::class)->create();
73+
$$MODEL_NAME_CAMEL$ = $MODEL_NAME$::factory()->create();
7474

7575
$resp = $this->$MODEL_NAME_CAMEL$Repo->delete($$MODEL_NAME_CAMEL$->$PRIMARY_KEY_NAME$);
7676

0 commit comments

Comments
 (0)