increase test coverage (#117)

70% test coverage
remove socialite
This commit is contained in:
Saeed Vaziry
2024-03-15 22:23:45 +01:00
committed by GitHub
parent 4f12de9586
commit a406491160
62 changed files with 1102 additions and 639 deletions

View File

@ -0,0 +1,42 @@
<?php
namespace Tests\Unit\Commands;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class CreateUserCommandTest extends TestCase
{
use RefreshDatabase;
public function test_create_user(): void
{
$this->artisan('user:create', [
'name' => 'John Doe',
'email' => 'john@doe.com',
'password' => 'password',
])->expectsOutput('User created!');
$this->assertDatabaseHas('users', [
'name' => 'John Doe',
'email' => 'john@doe.com',
]);
/** @var User $user */
$user = User::query()->where('email', 'john@doe.com')->first();
$this->assertDatabaseHas('projects', [
'user_id' => $user->id,
]);
}
public function test_skip_existing_user(): void
{
$this->artisan('user:create', [
'name' => 'John Doe',
'email' => $this->user->email,
'password' => 'password',
])->expectsOutput('User already exists. Skipping...');
}
}

View File

@ -0,0 +1,46 @@
<?php
namespace Tests\Unit\Commands;
use App\Facades\SSH;
use App\Models\Backup;
use App\Models\Database;
use App\Models\StorageProvider;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class RunBackupCommandTest extends TestCase
{
use RefreshDatabase;
public function test_run_without_any_backups(): void
{
$this->artisan('backups:run "* * * * *"')
->expectsOutput('0 backups started');
}
public function test_run_backups(): void
{
SSH::fake();
$database = Database::factory()->create([
'server_id' => $this->server,
]);
$storage = StorageProvider::factory()->create([
'user_id' => $this->user->id,
'provider' => \App\Enums\StorageProvider::DROPBOX,
]);
$backup = Backup::factory()->create([
'server_id' => $this->server->id,
'database_id' => $database->id,
'storage_id' => $storage->id,
'interval' => '1 * * * *',
'keep_backups' => 10,
]);
$this->artisan('backups:run "1 * * * *"')
->expectsOutput('1 backups started');
}
}

View File

@ -2,6 +2,8 @@
namespace Tests\Unit\Models;
use App\Enums\ServerStatus;
use App\Facades\SSH;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
@ -17,4 +19,32 @@ public function test_should_have_default_service()
$php->refresh();
$this->assertTrue($php->is_default);
}
public function test_check_connection_is_ready(): void
{
SSH::fake();
$this->server->update(['status' => ServerStatus::DISCONNECTED]);
$this->server->checkConnection();
$this->assertDatabaseHas('servers', [
'id' => $this->server->id,
'status' => ServerStatus::READY,
]);
}
public function test_connection_failed(): void
{
SSH::fake()->connectionWillFail();
$this->server->update(['status' => ServerStatus::READY]);
$this->server->checkConnection();
$this->assertDatabaseHas('servers', [
'id' => $this->server->id,
'status' => ServerStatus::DISCONNECTED,
]);
}
}