mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-02 22:46:16 +00:00
42
tests/Unit/Commands/CreateUserCommandTest.php
Normal file
42
tests/Unit/Commands/CreateUserCommandTest.php
Normal 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...');
|
||||
}
|
||||
}
|
46
tests/Unit/Commands/RunBackupCommandTest.php
Normal file
46
tests/Unit/Commands/RunBackupCommandTest.php
Normal 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');
|
||||
}
|
||||
}
|
@ -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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user