mirror of
https://github.com/coollabsio/coolify.git
synced 2026-11-04 10:42:23 +00:00
- Update tests whose expectations no longer matched intended changes (GitHub App redirect, wildcard domains, container IDs, nightly install folders, localhost metadata, Sentinel restart on save) - Seed the instance settings the 2FA profile test needs - Run the global Pest hooks for all test folders and release the Laravel application after each test, so tests do not leak state - Replace a class alias mock that broke later tests - Generate factory names that always pass name validation; Faker names with apostrophes or short words made form tests fail at random
64 lines
2.3 KiB
PHP
64 lines
2.3 KiB
PHP
<?php
|
|
|
|
use App\Models\Server;
|
|
use App\Models\User;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Queue;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
beforeEach(function () {
|
|
Server::flushIdentityMap();
|
|
// Changing is_metrics_enabled queues a Sentinel restart (ServerSetting::booted()); these tests
|
|
// only check the enabled state, so keep the sync queue from starting Sentinel.
|
|
Queue::fake();
|
|
});
|
|
|
|
it('treats Sentinel as enabled for regular servers even when the legacy flag and metrics are disabled', function () {
|
|
DB::table('instance_settings')->insert(['id' => 0]);
|
|
$user = User::factory()->create();
|
|
$server = Server::factory()->create([
|
|
'team_id' => $user->teams()->first()->id,
|
|
]);
|
|
$server->settings->update([
|
|
'is_metrics_enabled' => false,
|
|
'is_sentinel_enabled' => false,
|
|
]);
|
|
|
|
expect($server->fresh()->isSentinelEnabled())->toBeTrue();
|
|
});
|
|
|
|
it('does not enable Sentinel for excluded server types', function (array $settings, array $metadata = []) {
|
|
DB::table('instance_settings')->insert(['id' => 0]);
|
|
$user = User::factory()->create();
|
|
$server = Server::factory()->create([
|
|
'team_id' => $user->teams()->first()->id,
|
|
'server_metadata' => $metadata,
|
|
]);
|
|
$server->settings->update(array_merge([
|
|
'is_metrics_enabled' => false,
|
|
'is_sentinel_enabled' => true,
|
|
], $settings));
|
|
|
|
expect($server->fresh()->isSentinelEnabled())->toBeFalse();
|
|
})->with([
|
|
'build server' => [['server_role' => 'build', 'is_build_server' => true]],
|
|
'swarm manager' => [['is_swarm_manager' => true]],
|
|
'swarm worker' => [['is_swarm_worker' => true]],
|
|
'transferred server' => [[], ['transfer' => ['status' => 'transferred']]],
|
|
'force-disabled server' => [['force_disabled' => true]],
|
|
]);
|
|
|
|
it('keeps metrics optional while Sentinel remains enabled', function () {
|
|
DB::table('instance_settings')->insert(['id' => 0]);
|
|
$user = User::factory()->create();
|
|
$server = Server::factory()->create([
|
|
'team_id' => $user->teams()->first()->id,
|
|
]);
|
|
$server->settings->update(['is_metrics_enabled' => false]);
|
|
|
|
expect($server->fresh()->isSentinelEnabled())->toBeTrue()
|
|
->and((bool) $server->settings->fresh()->is_metrics_enabled)->toBeFalse();
|
|
});
|