migrating tests (DatabaseUser, Firewall and Logs)

This commit is contained in:
Saeed Vaziry
2024-10-09 23:32:52 +02:00
parent 0007e6f00a
commit 93cee92568
12 changed files with 214 additions and 56 deletions

View File

@ -5,7 +5,10 @@
use App\Enums\DatabaseUserStatus;
use App\Facades\SSH;
use App\Models\DatabaseUser;
use App\Web\Pages\Servers\Databases\Users;
use App\Web\Pages\Servers\Databases\Widgets\DatabaseUsersList;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;
use Tests\TestCase;
class DatabaseUserTest extends TestCase
@ -18,10 +21,14 @@ public function test_create_database_user(): void
SSH::fake();
$this->post(route('servers.databases.users.store', $this->server), [
'username' => 'user',
'password' => 'password',
])->assertSessionDoesntHaveErrors();
Livewire::test(Users::class, [
'server' => $this->server,
])
->callAction('create', [
'username' => 'user',
'password' => 'password',
])
->assertSuccessful();
$this->assertDatabaseHas('database_users', [
'username' => 'user',
@ -35,12 +42,16 @@ public function test_create_database_user_with_remote(): void
SSH::fake();
$this->post(route('servers.databases.users.store', $this->server), [
'username' => 'user',
'password' => 'password',
'remote' => 'on',
'host' => '%',
])->assertSessionDoesntHaveErrors();
Livewire::test(Users::class, [
'server' => $this->server,
])
->callAction('create', [
'username' => 'user',
'password' => 'password',
'remote' => true,
'host' => '%',
])
->assertSuccessful();
$this->assertDatabaseHas('database_users', [
'username' => 'user',
@ -57,7 +68,11 @@ public function test_see_database_users_list(): void
'server_id' => $this->server,
]);
$this->get(route('servers.databases', $this->server))
$this->get(
Users::getUrl([
'server' => $this->server,
])
)
->assertSuccessful()
->assertSee($databaseUser->username);
}
@ -72,8 +87,11 @@ public function test_delete_database_user(): void
'server_id' => $this->server,
]);
$this->delete(route('servers.databases.users.destroy', [$this->server, $databaseUser]))
->assertSessionDoesntHaveErrors();
Livewire::test(DatabaseUsersList::class, [
'server' => $this->server,
])
->callTableAction('delete', $databaseUser->id)
->assertSuccessful();
$this->assertDatabaseMissing('database_users', [
'id' => $databaseUser->id,
@ -90,11 +108,13 @@ public function test_unlink_database(): void
'server_id' => $this->server,
]);
$this->post(route('servers.databases.users.link', [
Livewire::test(DatabaseUsersList::class, [
'server' => $this->server,
'databaseUser' => $databaseUser,
]), [])
->assertSessionDoesntHaveErrors();
])
->callTableAction('link', $databaseUser->id, [
'databases' => [],
])
->assertSuccessful();
$this->assertDatabaseHas('database_users', [
'username' => $databaseUser->username,

View File

@ -5,7 +5,10 @@
use App\Enums\FirewallRuleStatus;
use App\Facades\SSH;
use App\Models\FirewallRule;
use App\Web\Pages\Servers\Firewall\Index;
use App\Web\Pages\Servers\Firewall\Widgets\RulesList;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;
use Tests\TestCase;
class FirewallTest extends TestCase
@ -18,13 +21,17 @@ public function test_create_firewall_rule(): void
$this->actingAs($this->user);
$this->post(route('servers.firewall.store', $this->server), [
'type' => 'allow',
'protocol' => 'tcp',
'port' => '1234',
'source' => '0.0.0.0',
'mask' => '0',
])->assertSessionDoesntHaveErrors();
Livewire::test(Index::class, [
'server' => $this->server,
])
->callAction('create', [
'type' => 'allow',
'protocol' => 'tcp',
'port' => '1234',
'source' => '0.0.0.0',
'mask' => '0',
])
->assertSuccessful();
$this->assertDatabaseHas('firewall_rules', [
'port' => '1234',
@ -40,7 +47,7 @@ public function test_see_firewall_rules(): void
'server_id' => $this->server->id,
]);
$this->get(route('servers.firewall', $this->server))
$this->get(Index::getUrl(['server' => $this->server]))
->assertSuccessful()
->assertSee($rule->source)
->assertSee($rule->port);
@ -56,10 +63,11 @@ public function test_delete_firewall_rule(): void
'server_id' => $this->server->id,
]);
$this->delete(route('servers.firewall.destroy', [
Livewire::test(RulesList::class, [
'server' => $this->server,
'firewallRule' => $rule,
]))->assertSessionDoesntHaveErrors();
])
->callTableAction('delete', $rule->id)
->assertSuccessful();
$this->assertDatabaseMissing('firewall_rules', [
'id' => $rule->id,

View File

@ -3,7 +3,10 @@
namespace Tests\Feature;
use App\Models\ServerLog;
use App\Web\Pages\Servers\Logs\Index;
use App\Web\Pages\Servers\Logs\RemoteLogs;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;
use Tests\TestCase;
class LogsTest extends TestCase
@ -19,37 +22,36 @@ public function test_see_logs()
'server_id' => $this->server->id,
]);
$this->get(route('servers.logs', $this->server))
$this->get(Index::getUrl(['server' => $this->server]))
->assertSuccessful()
->assertSeeText($log->type);
->assertSee($log->name);
}
public function test_see_logs_remote()
{
$this->actingAs($this->user);
/** @var ServerLog $log */
$log = ServerLog::factory()->create([
ServerLog::factory()->create([
'server_id' => $this->server->id,
'is_remote' => true,
'type' => 'remote',
'name' => 'see-remote-log',
]);
$this->get(route('servers.logs.remote', $this->server))
$this->get(RemoteLogs::getUrl(['server' => $this->server]))
->assertSuccessful()
->assertSeeText('see-remote-log');
->assertSee('see-remote-log');
}
public function test_create_remote_log()
{
$this->actingAs($this->user);
$this->post(route('servers.logs.remote.store', [
'server' => $this->server->id,
]), [
'path' => 'test-path',
])->assertOk();
Livewire::test(RemoteLogs::class, ['server' => $this->server])
->callAction('create', [
'path' => 'test-path',
])
->assertSuccessful();
$this->assertDatabaseHas('server_logs', [
'is_remote' => true,