Update `user:add` command for User model changes

This commit is contained in:
Christopher C. Wells 2021-04-22 15:10:38 -07:00
parent 489b48475e
commit 5541511d61
2 changed files with 23 additions and 3 deletions

View File

@ -15,7 +15,8 @@ class UserAdd extends Command
protected $signature = 'user:add
{username? : Username}
{password? : Password}
{--name= : User short name}';
{--name= : User short name};
{--admin : Makes the user an admin}';
/**
* @inheritdoc
@ -69,13 +70,14 @@ class UserAdd extends Command
$options = $this->options();
if (!$options['name']) {
$options['name'] = $this->ask('Enter a name for the user (optional)');
$options['name'] = $this->ask('Enter a name for the user', $arguments['username']);
}
User::create([
'username' => $arguments['username'],
'password' => Hash::make($arguments['password']),
'name' => $options['name'] ?: $arguments['username'],
'admin' => $options['admin'],
'remember_token' => Str::random(10),
])->save();

View File

@ -16,7 +16,7 @@ class UserAddTest extends TestCase
->expectsQuestion('Enter a username for the user', $user->username)
->expectsQuestion('Enter a password for the user (leave blank for a random password)', 'password')
->expectsQuestion('Re-type the password to confirm', 'password')
->expectsQuestion('Enter a name for the user (optional)', $user->name)
->expectsQuestion('Enter a name for the user', $user->name)
->assertExitCode(0);
/** @var \App\Models\User $new_user */
$new_user = User::whereUsername($user->username)->get()->first();
@ -41,6 +41,24 @@ class UserAddTest extends TestCase
$this->assertEquals($user->name, $new_user->name);
}
public function testCanAddAdminUser(): void
{
/** @var \App\Models\User $user */
$user = User::factory()->makeOne();
$parameters = [
'username' => $user->username,
'password' => 'password',
'--name' => $user->name,
'--admin' => true,
];
$this->artisan('user:add', $parameters)->assertExitCode(0);
/** @var \App\Models\User $new_user */
$new_user = User::whereUsername($user->username)->get()->first();
$this->assertEquals($user->username, $new_user->username);
$this->assertEquals($user->name, $new_user->name);
$this->assertTrue($new_user->admin);
}
public function testCanNotAddExistingUsername(): void
{
/** @var \App\Models\User $user */