mirror of
				https://github.com/BookStackApp/BookStack.git
				synced 2025-11-04 13:31:45 +03:00 
			
		
		
		
	- Aligned usage of injecting through handler. - Aligned handler return type. - Aligned argument and arg desc format. - Aligned lack of constructor.
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Tests\Commands;
 | 
						|
 | 
						|
use BookStack\Users\Models\User;
 | 
						|
use Illuminate\Database\Eloquent\Collection;
 | 
						|
use Tests\TestCase;
 | 
						|
 | 
						|
class DeleteUsersCommandTest extends TestCase
 | 
						|
{
 | 
						|
    public function test_command_deletes_users()
 | 
						|
    {
 | 
						|
        $userCount = User::query()->count();
 | 
						|
        $normalUsers = $this->getNormalUsers();
 | 
						|
 | 
						|
        $normalUserCount = $userCount - count($normalUsers);
 | 
						|
        $this->artisan('bookstack:delete-users')
 | 
						|
            ->expectsConfirmation('Are you sure you want to continue?', 'yes')
 | 
						|
            ->expectsOutputToContain("Deleted $normalUserCount of $userCount total users.")
 | 
						|
            ->assertExitCode(0);
 | 
						|
 | 
						|
        $this->assertDatabaseMissing('users', ['id' => $normalUsers->first()->id]);
 | 
						|
    }
 | 
						|
 | 
						|
    public function test_command_requires_confirmation()
 | 
						|
    {
 | 
						|
        $normalUsers = $this->getNormalUsers();
 | 
						|
 | 
						|
        $this->artisan('bookstack:delete-users')
 | 
						|
            ->expectsConfirmation('Are you sure you want to continue?', 'no')
 | 
						|
            ->assertExitCode(0);
 | 
						|
 | 
						|
        $this->assertDatabaseHas('users', ['id' => $normalUsers->first()->id]);
 | 
						|
    }
 | 
						|
 | 
						|
    protected function getNormalUsers(): Collection
 | 
						|
    {
 | 
						|
        return User::query()->whereNull('system_name')
 | 
						|
            ->get()
 | 
						|
            ->filter(function (User $user) {
 | 
						|
                return !$user->hasSystemRole('admin');
 | 
						|
            });
 | 
						|
    }
 | 
						|
}
 |