mirror of
https://github.com/tiennm99/coolify.git
synced 2026-08-20 12:23:48 +00:00
Move V5 source, migrations, UI, scripts, and tests into documentation, then remove V5 routes, models, jobs, configuration, dependencies, and application hooks.
73 lines
2.3 KiB
Plaintext
73 lines
2.3 KiB
Plaintext
<?php
|
|
|
|
use App\Models\V5\Server as V5Server;
|
|
use Illuminate\Support\Facades\Config;
|
|
use Illuminate\Testing\TestResponse;
|
|
use Tests\Support\V5TestSchema;
|
|
|
|
beforeEach(function () {
|
|
Config::set('broadcasting.default', 'log');
|
|
Config::set('cache.default', 'array');
|
|
|
|
V5TestSchema::dropAllTables();
|
|
V5TestSchema::createAllTables();
|
|
|
|
V5Server::query()->create([
|
|
'team_id' => 1,
|
|
'created_by_user_id' => 1,
|
|
'name' => 'edge-01',
|
|
'host' => '203.0.113.10',
|
|
'ssh_user' => 'root',
|
|
'ssh_port' => 22,
|
|
'status' => 'installed',
|
|
'wireguard_management_ip' => '100.64.0.5',
|
|
]);
|
|
});
|
|
|
|
afterEach(function () {
|
|
V5TestSchema::dropAllTables();
|
|
});
|
|
|
|
function postFluxContainerStatus(string $bearer): TestResponse
|
|
{
|
|
return test()->postJson('/api/v1/internal/flux/resource-status', [
|
|
'resource_type' => 'container',
|
|
'host_id' => '100.64.0.5',
|
|
'container_id' => 'external-container-id',
|
|
'container_name' => 'external-container',
|
|
'status' => 'running',
|
|
], [
|
|
'Authorization' => 'Bearer '.$bearer,
|
|
]);
|
|
}
|
|
|
|
it('accepts an inbound token listed in the rotatable token array', function () {
|
|
Config::set('flux.laravel_api_token', null);
|
|
Config::set('flux.laravel_api_tokens', ['old-token', 'new-token']);
|
|
|
|
postFluxContainerStatus('new-token')->assertSuccessful();
|
|
postFluxContainerStatus('old-token')->assertSuccessful();
|
|
});
|
|
|
|
it('still accepts the single fallback token alongside the array', function () {
|
|
Config::set('flux.laravel_api_token', 'single-token');
|
|
Config::set('flux.laravel_api_tokens', ['array-token']);
|
|
|
|
postFluxContainerStatus('single-token')->assertSuccessful();
|
|
postFluxContainerStatus('array-token')->assertSuccessful();
|
|
});
|
|
|
|
it('rejects a token that is in neither the array nor the fallback', function () {
|
|
Config::set('flux.laravel_api_token', 'single-token');
|
|
Config::set('flux.laravel_api_tokens', ['array-token']);
|
|
|
|
postFluxContainerStatus('unknown-token')->assertUnauthorized();
|
|
});
|
|
|
|
it('rejects an empty bearer token even when no tokens are configured', function () {
|
|
Config::set('flux.laravel_api_token', null);
|
|
Config::set('flux.laravel_api_tokens', []);
|
|
|
|
postFluxContainerStatus('')->assertUnauthorized();
|
|
});
|