From 4462879b7dcc98512e255e086aaaed92f789d2cd Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Thu, 2 Jul 2026 01:18:28 +0300 Subject: [PATCH] test admin command --- .../EnsureInitialAdminCommandTest.php | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 backend/tests/Unit/User/UseCases/EnsureInitialAdminCommandTest.php diff --git a/backend/tests/Unit/User/UseCases/EnsureInitialAdminCommandTest.php b/backend/tests/Unit/User/UseCases/EnsureInitialAdminCommandTest.php new file mode 100644 index 0000000..93831a9 --- /dev/null +++ b/backend/tests/Unit/User/UseCases/EnsureInitialAdminCommandTest.php @@ -0,0 +1,70 @@ +credentialsProvider( + 'admin@example.com', + 'secret-password', + ), + ); + + $commandTester = new CommandTester($command); + $statusCode = $commandTester->execute([]); + + $createdUser = $userRepository->findByEmail( + new EmailAddress('admin@example.com') + ); + + $this->assertSame(0, $statusCode); + $this->assertNotNull($createdUser); + $this->assertSame( + 'hashed-secret-password', + $createdUser->getPasswordHash(), + ); + $this->assertStringContainsString( + 'initial admin is ready', + $commandTester->getDisplay(), + ); + } + + private function credentialsProvider( + string $email, + string $password, + ): InitialAdminCredentialsProvider { + return new class ($email, $password) implements + InitialAdminCredentialsProvider + { + public function __construct( + private string $email, + private string $password, + ) { + } + + public function getCredentials(): InitialAdminCredentials + { + return new InitialAdminCredentials( + email: $this->email, + password: $this->password, + ); + } + }; + } +}