mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-04 15:32:35 +00:00
Plugins base (#613)
* wip * wip * cleanup * notification channels * phpstan * services * remove server types * refactoring * refactoring
This commit is contained in:
@ -9,10 +9,10 @@
|
||||
use App\Models\Backup;
|
||||
use App\Models\Database;
|
||||
use App\Models\StorageProvider;
|
||||
use App\StorageProviders\Dropbox;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\Bus;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use JsonException;
|
||||
use PHPUnit\Framework\Attributes\DataProvider;
|
||||
use Tests\TestCase;
|
||||
|
||||
@ -21,12 +21,12 @@ class DatabaseBackupTest extends TestCase
|
||||
use RefreshDatabase;
|
||||
|
||||
#[DataProvider('data')]
|
||||
public function test_create_backup(string $db): void
|
||||
public function test_create_backup(string $db, string $version): void
|
||||
{
|
||||
SSH::fake();
|
||||
Http::fake();
|
||||
|
||||
$this->setupDatabase($db);
|
||||
$this->setupDatabase($db, $version);
|
||||
|
||||
$this->actingAs($this->user);
|
||||
|
||||
@ -36,7 +36,7 @@ public function test_create_backup(string $db): void
|
||||
|
||||
$storage = StorageProvider::factory()->create([
|
||||
'user_id' => $this->user->id,
|
||||
'provider' => \App\Enums\StorageProvider::DROPBOX,
|
||||
'provider' => Dropbox::id(),
|
||||
]);
|
||||
|
||||
$this->post(route('backups.store', [
|
||||
@ -47,7 +47,7 @@ public function test_create_backup(string $db): void
|
||||
'interval' => '0 * * * *',
|
||||
'keep' => '10',
|
||||
])
|
||||
->assertSessionHasNoErrors();
|
||||
->assertSessionDoesntHaveErrors();
|
||||
|
||||
$this->assertDatabaseHas('backups', [
|
||||
'status' => BackupStatus::RUNNING,
|
||||
@ -58,9 +58,6 @@ public function test_create_backup(string $db): void
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws JsonException
|
||||
*/
|
||||
public function test_create_custom_interval_backup(): void
|
||||
{
|
||||
Bus::fake();
|
||||
@ -73,7 +70,7 @@ public function test_create_custom_interval_backup(): void
|
||||
|
||||
$storage = StorageProvider::factory()->create([
|
||||
'user_id' => $this->user->id,
|
||||
'provider' => \App\Enums\StorageProvider::DROPBOX,
|
||||
'provider' => Dropbox::id(),
|
||||
]);
|
||||
|
||||
$this->post(route('backups.store', ['server' => $this->server]), [
|
||||
@ -83,7 +80,7 @@ public function test_create_custom_interval_backup(): void
|
||||
'custom_interval' => '* * * * *',
|
||||
'keep' => '10',
|
||||
])
|
||||
->assertSessionHasNoErrors();
|
||||
->assertSessionDoesntHaveErrors();
|
||||
|
||||
$this->assertDatabaseHas('backups', [
|
||||
'status' => BackupStatus::RUNNING,
|
||||
@ -100,7 +97,7 @@ public function test_see_backups_list(): void
|
||||
|
||||
$storage = StorageProvider::factory()->create([
|
||||
'user_id' => $this->user->id,
|
||||
'provider' => \App\Enums\StorageProvider::DROPBOX,
|
||||
'provider' => Dropbox::id(),
|
||||
]);
|
||||
|
||||
Backup::factory()->create([
|
||||
@ -113,9 +110,6 @@ public function test_see_backups_list(): void
|
||||
->assertSuccessful();
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws JsonException
|
||||
*/
|
||||
public function test_update_backup(): void
|
||||
{
|
||||
$this->actingAs($this->user);
|
||||
@ -126,7 +120,7 @@ public function test_update_backup(): void
|
||||
|
||||
$storage = StorageProvider::factory()->create([
|
||||
'user_id' => $this->user->id,
|
||||
'provider' => \App\Enums\StorageProvider::DROPBOX,
|
||||
'provider' => Dropbox::id(),
|
||||
]);
|
||||
|
||||
$backup = Backup::factory()->create([
|
||||
@ -144,7 +138,7 @@ public function test_update_backup(): void
|
||||
'interval' => '0 0 * * *',
|
||||
'keep' => 10,
|
||||
])
|
||||
->assertSessionHasNoErrors();
|
||||
->assertSessionDoesntHaveErrors();
|
||||
|
||||
$this->assertDatabaseHas('backups', [
|
||||
'id' => $backup->id,
|
||||
@ -154,9 +148,9 @@ public function test_update_backup(): void
|
||||
}
|
||||
|
||||
#[DataProvider('data')]
|
||||
public function test_delete_backup(string $db): void
|
||||
public function test_delete_backup(string $db, string $version): void
|
||||
{
|
||||
$this->setupDatabase($db);
|
||||
$this->setupDatabase($db, $version);
|
||||
|
||||
$this->actingAs($this->user);
|
||||
|
||||
@ -166,7 +160,7 @@ public function test_delete_backup(string $db): void
|
||||
|
||||
$storage = StorageProvider::factory()->create([
|
||||
'user_id' => $this->user->id,
|
||||
'provider' => \App\Enums\StorageProvider::DROPBOX,
|
||||
'provider' => Dropbox::id(),
|
||||
]);
|
||||
|
||||
$backup = Backup::factory()->create([
|
||||
@ -176,7 +170,7 @@ public function test_delete_backup(string $db): void
|
||||
]);
|
||||
|
||||
$this->delete(route('backups.destroy', ['server' => $this->server, 'backup' => $backup]))
|
||||
->assertSessionHasNoErrors();
|
||||
->assertSessionDoesntHaveErrors();
|
||||
|
||||
$this->assertDatabaseMissing('backups', [
|
||||
'id' => $backup->id,
|
||||
@ -184,12 +178,12 @@ public function test_delete_backup(string $db): void
|
||||
}
|
||||
|
||||
#[DataProvider('data')]
|
||||
public function test_restore_backup(string $db): void
|
||||
public function test_restore_backup(string $db, string $version): void
|
||||
{
|
||||
Http::fake();
|
||||
SSH::fake();
|
||||
|
||||
$this->setupDatabase($db);
|
||||
$this->setupDatabase($db, $version);
|
||||
|
||||
$this->actingAs($this->user);
|
||||
|
||||
@ -199,7 +193,7 @@ public function test_restore_backup(string $db): void
|
||||
|
||||
$storage = StorageProvider::factory()->create([
|
||||
'user_id' => $this->user->id,
|
||||
'provider' => \App\Enums\StorageProvider::DROPBOX,
|
||||
'provider' => Dropbox::id(),
|
||||
]);
|
||||
|
||||
$backup = Backup::factory()->create([
|
||||
@ -217,7 +211,7 @@ public function test_restore_backup(string $db): void
|
||||
]), [
|
||||
'database' => $database->id,
|
||||
])
|
||||
->assertSessionHasNoErrors();
|
||||
->assertSessionDoesntHaveErrors();
|
||||
|
||||
$this->assertDatabaseHas('backup_files', [
|
||||
'id' => $backupFile->id,
|
||||
@ -225,14 +219,14 @@ public function test_restore_backup(string $db): void
|
||||
]);
|
||||
}
|
||||
|
||||
private function setupDatabase(string $database): void
|
||||
private function setupDatabase(string $database, string $version): void
|
||||
{
|
||||
$this->server->services()->where('type', 'database')->delete();
|
||||
|
||||
$this->server->services()->create([
|
||||
'type' => 'database',
|
||||
'name' => config('core.databases_name.'.$database),
|
||||
'version' => config('core.databases_version.'.$database),
|
||||
'name' => $database,
|
||||
'version' => $version,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -242,9 +236,9 @@ private function setupDatabase(string $database): void
|
||||
public static function data(): array
|
||||
{
|
||||
return [
|
||||
[\App\Enums\Database::MYSQL80],
|
||||
[\App\Enums\Database::MARIADB104],
|
||||
[\App\Enums\Database::POSTGRESQL16],
|
||||
['mysql', '8.4'],
|
||||
['mariadb', '10.4'],
|
||||
['postgresql', '16'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user