From 64341b75dd79548c9f31a04ef69eaa64ad352ee6 Mon Sep 17 00:00:00 2001 From: Alexander Gaal Date: Mon, 22 Jan 2024 23:44:58 +0100 Subject: [PATCH] fix exception when domain name is not given --- src/NameResolver.php | 6 +++-- tests/NameResolverTest.php | 48 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 tests/NameResolverTest.php diff --git a/src/NameResolver.php b/src/NameResolver.php index b8c9bf6..55d1ef2 100644 --- a/src/NameResolver.php +++ b/src/NameResolver.php @@ -10,8 +10,10 @@ use AkrilliA\LaravelBeyond\Exceptions\InvalidNameException; use Illuminate\Support\Str; +use function Laravel\Prompts\confirm; use function Laravel\Prompts\search; use function Laravel\Prompts\suggest; +use function Termwind\ask; final class NameResolver { @@ -19,9 +21,9 @@ final class NameResolver private string $namespace; - private string $directory; + private string $directory = ''; - private string $className; + private string $className = ''; private string $path; diff --git a/tests/NameResolverTest.php b/tests/NameResolverTest.php new file mode 100644 index 0000000..8946832 --- /dev/null +++ b/tests/NameResolverTest.php @@ -0,0 +1,48 @@ +assertSame('Users', $resolver->getAppOrDomain()); + } + + public function testCanResolveClassName(): void + { + $resolver = new NameResolver( + command: new MakeEnumCommand, + name: 'Users.UserStatusEnum', + ); + + $this->assertSame('UserStatusEnum', $resolver->getClassName()); + } + + public function testCanResolveNamespace(): void + { + $resolver = new NameResolver( + command: new MakeEnumCommand, + name: 'Users.UserStatusEnum', + ); + + $this->assertSame('Domain\\Users\\Enums', $resolver->getNamespace()); + } + + public function testCanResolveAppOrDomainByQuestion(): void + { + $this->artisan(MakeEnumCommand::class, [ + 'name' => 'Users/UserStatusEnum' + ]) + ->expectsQuestion('On which domain do you want to add your Enum', 'Users') + ->assertSuccessful(); + } +}