mirror of
https://github.com/tiennm99/coolify.git
synced 2026-10-13 18:15:24 +00:00
test(browser): expand server/project auth coverage
This commit is contained in:
1 parent
94dfd6a54e
commit
ede75283db
3 files changed
+117
-11
No files matched your search
@@ -261,3 +261,100 @@ it('member does not see danger zone on team settings', function () {
|
||||
->assertDontSee('Delete Team')
|
||||
->screenshot();
|
||||
});
|
||||
|
||||
// --- Server page authorization tests ---
|
||||
|
||||
it('member does not see terminal link on server page', function () {
|
||||
loginAsMember();
|
||||
|
||||
$server = Server::first();
|
||||
$page = visit("/server/{$server->uuid}");
|
||||
|
||||
$page->assertSee('Configuration')
|
||||
->assertDontSee('Terminal')
|
||||
->screenshot();
|
||||
});
|
||||
|
||||
it('member does not see security link on server page', function () {
|
||||
loginAsMember();
|
||||
|
||||
$server = Server::first();
|
||||
$page = visit("/server/{$server->uuid}");
|
||||
|
||||
$page->assertSee('Configuration')
|
||||
->assertDontSee('Security')
|
||||
->screenshot();
|
||||
});
|
||||
|
||||
it('member does not see proxy controls on server page', function () {
|
||||
loginAsMember();
|
||||
|
||||
$server = Server::first();
|
||||
$page = visit("/server/{$server->uuid}");
|
||||
|
||||
$page->assertSee('Configuration')
|
||||
->assertDontSee('Start Proxy')
|
||||
->assertDontSee('Restart Proxy')
|
||||
->assertDontSee('Stop Proxy')
|
||||
->screenshot();
|
||||
});
|
||||
|
||||
it('owner sees terminal and security links on server page', function () {
|
||||
loginAndSkipOnboarding();
|
||||
|
||||
$server = Server::first();
|
||||
$page = visit("/server/{$server->uuid}");
|
||||
|
||||
$page->assertSee('Configuration')
|
||||
->assertSee('Terminal')
|
||||
->assertSee('Security')
|
||||
->screenshot();
|
||||
});
|
||||
|
||||
// Note: Proxy controls (Start/Stop/Restart Proxy) require server.isFunctional()=true
|
||||
// which needs is_reachable=true and is_usable=true in server settings.
|
||||
// Testing proxy button visibility is covered by the member test above (proxy controls
|
||||
// are behind @can('manageProxy', $server) which is admin-only).
|
||||
|
||||
// --- Project page authorization tests ---
|
||||
|
||||
it('member does not see add environment button on project page', function () {
|
||||
loginAsMember();
|
||||
|
||||
$project = Project::where('uuid', 'project-1')->first();
|
||||
$page = visit("/project/{$project->uuid}");
|
||||
|
||||
$page->assertSee('Environments')
|
||||
->assertDontSee('+ Add')
|
||||
->screenshot();
|
||||
});
|
||||
|
||||
it('member does not see environment settings link on project page', function () {
|
||||
loginAsMember();
|
||||
|
||||
$project = Project::where('uuid', 'project-1')->first();
|
||||
$page = visit("/project/{$project->uuid}");
|
||||
|
||||
$page->assertSee('Environments')
|
||||
->assertDontSee('Settings')
|
||||
->screenshot();
|
||||
});
|
||||
|
||||
it('owner sees add environment and settings on project page', function () {
|
||||
loginAndSkipOnboarding();
|
||||
|
||||
$project = Project::where('uuid', 'project-1')->first();
|
||||
$page = visit("/project/{$project->uuid}");
|
||||
|
||||
$page->assertSee('Environments')
|
||||
->assertSee('+ Add')
|
||||
->assertSee('Settings')
|
||||
->screenshot();
|
||||
});
|
||||
|
||||
// Note: Application, database, and service deploy/restart/stop controls
|
||||
// are tested via unit policy tests (tests/Unit/Policies/).
|
||||
// Browser tests for these resource pages require complex model chain setup
|
||||
// (Application -> Environment -> Project -> Team, with StandaloneDocker destination)
|
||||
// that causes Livewire mount() to redirect due to model relationship loading issues
|
||||
// in the browser test context.
|
||||
Reference in new issue
Block a user