mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-05 07:52:34 +00:00
Plugins base (#613)
* wip * wip * cleanup * notification channels * phpstan * services * remove server types * refactoring * refactoring
This commit is contained in:
@ -2,7 +2,11 @@
|
||||
|
||||
namespace Tests\Feature\API;
|
||||
|
||||
use App\Enums\ServerProvider;
|
||||
use App\Models\ServerProvider;
|
||||
use App\ServerProviders\DigitalOcean;
|
||||
use App\ServerProviders\Hetzner;
|
||||
use App\ServerProviders\Linode;
|
||||
use App\ServerProviders\Vultr;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
@ -70,8 +74,8 @@ public function test_see_providers_list(): void
|
||||
{
|
||||
Sanctum::actingAs($this->user, ['read', 'write']);
|
||||
|
||||
/** @var \App\Models\ServerProvider $provider */
|
||||
$provider = \App\Models\ServerProvider::factory()->create([
|
||||
/** @var ServerProvider $provider */
|
||||
$provider = ServerProvider::factory()->create([
|
||||
'user_id' => $this->user->id,
|
||||
]);
|
||||
|
||||
@ -90,8 +94,8 @@ public function test_delete_provider(string $provider): void
|
||||
{
|
||||
Sanctum::actingAs($this->user, ['read', 'write']);
|
||||
|
||||
/** @var \App\Models\ServerProvider $provider */
|
||||
$provider = \App\Models\ServerProvider::factory()->create([
|
||||
/** @var ServerProvider $provider */
|
||||
$provider = ServerProvider::factory()->create([
|
||||
'user_id' => $this->user->id,
|
||||
'provider' => $provider,
|
||||
]);
|
||||
@ -108,8 +112,8 @@ public function test_cannot_delete_provider(string $provider): void
|
||||
{
|
||||
Sanctum::actingAs($this->user, ['read', 'write']);
|
||||
|
||||
/** @var \App\Models\ServerProvider $provider */
|
||||
$provider = \App\Models\ServerProvider::factory()->create([
|
||||
/** @var ServerProvider $provider */
|
||||
$provider = ServerProvider::factory()->create([
|
||||
'user_id' => $this->user->id,
|
||||
'provider' => $provider,
|
||||
]);
|
||||
@ -141,32 +145,32 @@ public static function data(): array
|
||||
// ],
|
||||
// ],
|
||||
[
|
||||
ServerProvider::LINODE,
|
||||
Linode::id(),
|
||||
[
|
||||
'token' => 'token',
|
||||
],
|
||||
],
|
||||
[
|
||||
ServerProvider::LINODE,
|
||||
Linode::id(),
|
||||
[
|
||||
'token' => 'token',
|
||||
'global' => 1,
|
||||
],
|
||||
],
|
||||
[
|
||||
ServerProvider::DIGITALOCEAN,
|
||||
DigitalOcean::id(),
|
||||
[
|
||||
'token' => 'token',
|
||||
],
|
||||
],
|
||||
[
|
||||
ServerProvider::VULTR,
|
||||
Vultr::id(),
|
||||
[
|
||||
'token' => 'token',
|
||||
],
|
||||
],
|
||||
[
|
||||
ServerProvider::HETZNER,
|
||||
Hetzner::id(),
|
||||
[
|
||||
'token' => 'token',
|
||||
],
|
||||
|
@ -2,12 +2,9 @@
|
||||
|
||||
namespace Tests\Feature\API;
|
||||
|
||||
use App\Enums\Database;
|
||||
use App\Enums\OperatingSystem;
|
||||
use App\Enums\ServerProvider;
|
||||
use App\Enums\ServerType;
|
||||
use App\Enums\Webserver;
|
||||
use App\Facades\SSH;
|
||||
use App\ServerProviders\Custom;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
use Tests\TestCase;
|
||||
@ -52,44 +49,15 @@ public function test_create_server(): void
|
||||
$this->json('POST', route('api.projects.servers.create', [
|
||||
'project' => $this->user->current_project_id,
|
||||
]), [
|
||||
'provider' => ServerProvider::CUSTOM,
|
||||
'provider' => Custom::id(),
|
||||
'name' => 'test',
|
||||
'ip' => '1.1.1.1',
|
||||
'port' => '22',
|
||||
'os' => OperatingSystem::UBUNTU22,
|
||||
'webserver' => Webserver::NGINX,
|
||||
'database' => Database::MYSQL80,
|
||||
'php' => '8.2',
|
||||
])
|
||||
->assertSuccessful()
|
||||
->assertJsonFragment([
|
||||
'name' => 'test',
|
||||
'type' => ServerType::REGULAR,
|
||||
]);
|
||||
}
|
||||
|
||||
public function test_create_server_with_caddy(): void
|
||||
{
|
||||
Sanctum::actingAs($this->user, ['read', 'write']);
|
||||
|
||||
SSH::fake('Active: active'); // fake output for service installations
|
||||
|
||||
$this->json('POST', route('api.projects.servers.create', [
|
||||
'project' => $this->user->current_project_id,
|
||||
]), [
|
||||
'provider' => ServerProvider::CUSTOM,
|
||||
'name' => 'test',
|
||||
'ip' => '1.1.1.1',
|
||||
'port' => '22',
|
||||
'os' => OperatingSystem::UBUNTU22,
|
||||
'webserver' => Webserver::CADDY,
|
||||
'database' => Database::MYSQL80,
|
||||
'php' => '8.2',
|
||||
])
|
||||
->assertSuccessful()
|
||||
->assertJsonFragment([
|
||||
'name' => 'test',
|
||||
'type' => ServerType::REGULAR,
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -4,10 +4,11 @@
|
||||
|
||||
use App\Enums\DeploymentStatus;
|
||||
use App\Enums\LoadBalancerMethod;
|
||||
use App\Enums\SourceControl;
|
||||
use App\Facades\SSH;
|
||||
use App\Models\Server;
|
||||
use App\Models\Site;
|
||||
use App\Models\SourceControl;
|
||||
use App\SourceControlProviders\Github;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
@ -42,9 +43,9 @@ public function test_create_site(array $inputs): void
|
||||
|
||||
Sanctum::actingAs($this->user, ['read', 'write']);
|
||||
|
||||
/** @var \App\Models\SourceControl $sourceControl */
|
||||
$sourceControl = \App\Models\SourceControl::factory()->create([
|
||||
'provider' => SourceControl::GITHUB,
|
||||
/** @var SourceControl $sourceControl */
|
||||
$sourceControl = SourceControl::factory()->create([
|
||||
'provider' => Github::id(),
|
||||
]);
|
||||
|
||||
$inputs['source_control'] = $sourceControl->id;
|
||||
|
@ -3,6 +3,9 @@
|
||||
namespace Tests\Feature\API;
|
||||
|
||||
use App\Models\SourceControl;
|
||||
use App\SourceControlProviders\Bitbucket;
|
||||
use App\SourceControlProviders\Github;
|
||||
use App\SourceControlProviders\Gitlab;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
@ -137,11 +140,11 @@ public function test_edit_source_control(string $provider, array $input): void
|
||||
public static function data(): array
|
||||
{
|
||||
return [
|
||||
['github', ['token' => 'test']],
|
||||
['github', ['token' => 'test', 'global' => '1']],
|
||||
['gitlab', ['token' => 'test']],
|
||||
['gitlab', ['token' => 'test', 'url' => 'https://git.example.com/']],
|
||||
['bitbucket', ['username' => 'test', 'password' => 'test']],
|
||||
[Github::id(), ['token' => 'test']],
|
||||
[Github::id(), ['token' => 'test', 'global' => '1']],
|
||||
[Gitlab::id(), ['token' => 'test']],
|
||||
[Gitlab::id(), ['token' => 'test', 'url' => 'https://git.example.com/']],
|
||||
[Bitbucket::id(), ['username' => 'test', 'password' => 'test']],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -2,11 +2,12 @@
|
||||
|
||||
namespace Tests\Feature\API;
|
||||
|
||||
use App\Enums\StorageProvider;
|
||||
use App\Facades\FTP;
|
||||
use App\Models\Backup;
|
||||
use App\Models\Database;
|
||||
use App\Models\StorageProvider as StorageProviderModel;
|
||||
use App\StorageProviders\Dropbox;
|
||||
use App\StorageProviders\Local;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
@ -25,11 +26,11 @@ public function test_create(array $input): void
|
||||
{
|
||||
Sanctum::actingAs($this->user, ['read', 'write']);
|
||||
|
||||
if ($input['provider'] === StorageProvider::DROPBOX) {
|
||||
if ($input['provider'] === Dropbox::id()) {
|
||||
Http::fake();
|
||||
}
|
||||
|
||||
if ($input['provider'] === StorageProvider::FTP) {
|
||||
if ($input['provider'] === \App\StorageProviders\FTP::id()) {
|
||||
FTP::fake();
|
||||
}
|
||||
|
||||
@ -50,7 +51,7 @@ public function test_see_providers_list(): void
|
||||
/** @var StorageProviderModel $provider */
|
||||
$provider = StorageProviderModel::factory()->create([
|
||||
'user_id' => $this->user->id,
|
||||
'provider' => StorageProvider::DROPBOX,
|
||||
'provider' => Dropbox::id(),
|
||||
]);
|
||||
|
||||
$this->json('GET', route('api.projects.storage-providers', [
|
||||
@ -115,14 +116,14 @@ public static function createData(): array
|
||||
return [
|
||||
[
|
||||
[
|
||||
'provider' => StorageProvider::LOCAL,
|
||||
'provider' => Local::id(),
|
||||
'name' => 'local-test',
|
||||
'path' => '/home/vito/backups',
|
||||
],
|
||||
],
|
||||
[
|
||||
[
|
||||
'provider' => StorageProvider::LOCAL,
|
||||
'provider' => Local::id(),
|
||||
'name' => 'local-test',
|
||||
'path' => '/home/vito/backups',
|
||||
'global' => 1,
|
||||
@ -130,7 +131,7 @@ public static function createData(): array
|
||||
],
|
||||
[
|
||||
[
|
||||
'provider' => StorageProvider::FTP,
|
||||
'provider' => \App\StorageProviders\FTP::id(),
|
||||
'name' => 'ftp-test',
|
||||
'host' => '1.2.3.4',
|
||||
'port' => '22',
|
||||
@ -143,7 +144,7 @@ public static function createData(): array
|
||||
],
|
||||
[
|
||||
[
|
||||
'provider' => StorageProvider::FTP,
|
||||
'provider' => \App\StorageProviders\FTP::id(),
|
||||
'name' => 'ftp-test',
|
||||
'host' => '1.2.3.4',
|
||||
'port' => '22',
|
||||
@ -157,14 +158,14 @@ public static function createData(): array
|
||||
],
|
||||
[
|
||||
[
|
||||
'provider' => StorageProvider::DROPBOX,
|
||||
'provider' => Dropbox::id(),
|
||||
'name' => 'dropbox-test',
|
||||
'token' => 'token',
|
||||
],
|
||||
],
|
||||
[
|
||||
[
|
||||
'provider' => StorageProvider::DROPBOX,
|
||||
'provider' => Dropbox::id(),
|
||||
'name' => 'dropbox-test',
|
||||
'token' => 'token',
|
||||
'global' => 1,
|
||||
|
Reference in New Issue
Block a user