mirror of
https://github.com/tiennm99/coolify.git
synced 2026-08-25 16:26:16 +00:00
Split V5 dashboard behavior into domain controllers and policies, add agent token rotation/revocation, status reconciliation jobs, ingress firewall syncing, and canvas connection APIs. Add migrations for V5 status tracking, server capabilities, resource connection aliases, and revoked agent tokens.
72 lines
2.1 KiB
PHP
72 lines
2.1 KiB
PHP
<?php
|
|
|
|
use App\Models\Team;
|
|
use App\Models\User;
|
|
use Illuminate\Support\Facades\Config;
|
|
|
|
beforeEach(function () {
|
|
resetV5DashboardTestState();
|
|
createSharedUserAndTeamTables();
|
|
|
|
Config::set('broadcasting.default', 'pusher');
|
|
Config::set('broadcasting.connections.pusher.key', 'test-key');
|
|
Config::set('broadcasting.connections.pusher.secret', 'test-secret');
|
|
Config::set('broadcasting.connections.pusher.app_id', 'test-app-id');
|
|
Config::set('broadcasting.connections.pusher.options', [
|
|
'host' => '127.0.0.1',
|
|
'port' => 6001,
|
|
'scheme' => 'http',
|
|
'useTLS' => false,
|
|
]);
|
|
});
|
|
|
|
it('authorizes team members on their private team channel', function () {
|
|
[$user, $team] = createV5UserWithTeam();
|
|
|
|
$this
|
|
->actingAs($user)
|
|
->postJson('/broadcasting/auth', [
|
|
'channel_name' => "private-team.{$team->id}",
|
|
'socket_id' => '1234.5678',
|
|
])
|
|
->assertSuccessful()
|
|
->assertJsonStructure(['auth']);
|
|
});
|
|
|
|
it('rejects users outside the team on the private team channel', function () {
|
|
[, $team] = createV5UserWithTeam();
|
|
|
|
$outsider = User::withoutEvents(fn () => User::query()->create([
|
|
'name' => 'Outsider',
|
|
'email' => 'outsider@example.com',
|
|
'email_verified_at' => now(),
|
|
'password' => 'password',
|
|
]));
|
|
$otherTeam = Team::withoutEvents(fn () => Team::query()->create([
|
|
'name' => 'Another Team',
|
|
'description' => null,
|
|
'personal_team' => false,
|
|
'show_boarding' => false,
|
|
]));
|
|
$outsider->teams()->attach($otherTeam, ['role' => 'owner']);
|
|
|
|
$this
|
|
->actingAs($outsider)
|
|
->postJson('/broadcasting/auth', [
|
|
'channel_name' => "private-team.{$team->id}",
|
|
'socket_id' => '1234.5678',
|
|
])
|
|
->assertForbidden();
|
|
});
|
|
|
|
it('rejects guests on the private team channel', function () {
|
|
[, $team] = createV5UserWithTeam();
|
|
|
|
$this
|
|
->postJson('/broadcasting/auth', [
|
|
'channel_name' => "private-team.{$team->id}",
|
|
'socket_id' => '1234.5678',
|
|
])
|
|
->assertForbidden();
|
|
});
|