Skip to content

Commit 80525d2

Browse files
committed
fix annotation command
1 parent 75f4aba commit 80525d2

File tree

2 files changed

+31
-18
lines changed

2 files changed

+31
-18
lines changed

src/Commands/EnumAnnotateCommand.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@
2020

2121
class EnumAnnotateCommand extends Command
2222
{
23-
protected $signature = 'enum:annotate
24-
{class?}
25-
{--folder=}';
23+
protected $signature = 'enum:annotate {class?} {--folder=}';
2624

2725
protected $description = 'Generate DocBlock annotations for enum classes';
2826

@@ -91,10 +89,8 @@ protected function annotateClass(string $className): int
9189

9290
$reflection = new ReflectionEnum($className);
9391

94-
if ($reflection->isSubclassOf(UnitEnum::class)) {
95-
if ($this->usesEnumHelperTrait($className)) {
96-
$this->annotate($reflection);
97-
}
92+
if ($reflection->isSubclassOf(UnitEnum::class) && $this->usesEnumHelperTrait($className)) {
93+
$this->annotate($reflection);
9894
}
9995

10096
return self::SUCCESS;

tests/Feature/EnumAnnotateCommandTest.php

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,34 @@
2323
__DIR__.'/../stubs/StatusStringWithoutDocBlock.stub',
2424
$this->withoutDocBlockEnumsFolder.'/StatusStringWithoutDocBlock.php'
2525
);
26+
copy(
27+
__DIR__.'/../stubs/DoesntUseEnumHelperTrait.stub',
28+
$this->withoutDocBlockEnumsFolder.'/DoesntUseEnumHelperTrait.php'
29+
);
30+
copy(
31+
__DIR__.'/../stubs/StatusWithoutMethodTagDocBlock.stub',
32+
$this->withoutDocBlockEnumsFolder.'/StatusWithoutMethodTagDocBlock.php'
33+
);
2634
});
2735

36+
/**
37+
* @param \Datomatic\LaravelEnumHelper\Tests\TestCase|\PHPUnit\Framework\TestCase $this
38+
* @return void
39+
*/
40+
function unlinkAllPhpFiles(string $folder): void
41+
{
42+
try{
43+
unlink($folder.'/DoesntUseEnumHelperTrait.php');
44+
unlink($folder.'/StatusWithoutDocBlock.php');
45+
unlink($folder.'/StatusIntWithoutDocBlock.php');
46+
unlink($folder.'/StatusStringWithoutDocBlock.php');
47+
unlink($folder.'/StatusWithoutMethodTagDocBlock.php');
48+
}catch (\Exception){};
49+
}
50+
2851
afterEach(function () {
29-
if (file_exists($this->withoutDocBlockEnumsFolder.'/StatusWithoutDocBlock.php')) {
30-
unlink($this->withoutDocBlockEnumsFolder.'/StatusWithoutDocBlock.php');
31-
unlink($this->withoutDocBlockEnumsFolder.'/StatusIntWithoutDocBlock.php');
32-
unlink($this->withoutDocBlockEnumsFolder.'/StatusStringWithoutDocBlock.php');
33-
}
52+
unlinkAllPhpFiles($this->withoutDocBlockEnumsFolder);
53+
3454
rmdir($this->withoutDocBlockEnumsFolder);
3555
rmdir(app_path('Enums'));
3656
});
@@ -97,7 +117,7 @@
97117
$this->assertEquals(1, substr_count($contents, '@method static string noResponse()'));
98118
});
99119

100-
it('doesnt annotate enums that dont use LaravelEnumTrait', function () {
120+
it('doesnt annotate enums that don\'t use LaravelEnumTrait', function () {
101121
$this->artisan('enum:annotate Datomatic\\\\LaravelEnumHelper\\\\Tests\\\\Support\\\\Enums\\\\DoesntUseEnumHelperTrait')
102122
->assertSuccessful();
103123
$e = new ReflectionEnum(DoesntUseEnumHelperTrait::class);
@@ -115,9 +135,6 @@
115135
});
116136

117137
it('can be failed with empty folder', function () {
118-
unlink($this->withoutDocBlockEnumsFolder.'/StatusWithoutDocBlock.php');
119-
unlink($this->withoutDocBlockEnumsFolder.'/StatusIntWithoutDocBlock.php');
120-
unlink($this->withoutDocBlockEnumsFolder.'/StatusStringWithoutDocBlock.php');
121-
$this->artisan("enum:annotate --folder={$this->withoutDocBlockEnumsFolder}")
122-
->assertFailed();
138+
unlinkAllPhpFiles($this->withoutDocBlockEnumsFolder);
139+
$this->artisan("enum:annotate --folder={$this->withoutDocBlockEnumsFolder}")->assertFailed();
123140
});

0 commit comments

Comments
 (0)