mirror of
https://github.com/coollabsio/coolify.git
synced 2025-12-28 05:34:50 +00:00
refactor(ui): improve styling and consistency in environment variable warning and docker cleanup components
This commit is contained in:
parent
6cd3bc0461
commit
47b060e291
@ -31,7 +31,7 @@
|
||||
}
|
||||
}" x-if="showWarning">
|
||||
<x-callout type="warning" title="Caution">
|
||||
<div class="text-sm text-yellow-700 dark:text-yellow-300" x-text="warningMessage"></div>
|
||||
<div class="text-sm text-yellow-700 dark:text-yellow-300" x-text="recommendation"></div>
|
||||
<div class="text-sm" x-text="warningMessage"></div>
|
||||
<div class="text-sm" x-text="recommendation"></div>
|
||||
</x-callout>
|
||||
</template>
|
||||
|
||||
@ -41,11 +41,11 @@
|
||||
helper="The Docker cleanup tasks will run when the disk usage exceeds this threshold." />
|
||||
@endif
|
||||
</div>
|
||||
<div class="w-96">
|
||||
<div class="w-full sm:w-96">
|
||||
<x-forms.checkbox canGate="update" :canResource="$server"
|
||||
helper="Enabling Force Docker Cleanup or manually triggering a cleanup will perform the following actions:
|
||||
<ul class='list-disc pl-4 mt-2'>
|
||||
<li>Removes stopped containers managed by Coolify (as containers are none persistent, no data will be lost).</li>
|
||||
<li>Removes stopped containers managed by Coolify (as containers are non-persistent, no data will be lost).</li>
|
||||
<li>Deletes unused images.</li>
|
||||
<li>Clears build cache.</li>
|
||||
<li>Removes old versions of the Coolify helper image.</li>
|
||||
@ -63,7 +63,7 @@
|
||||
<x-callout type="warning" title="Caution">
|
||||
<p>These options can cause permanent data loss and functional issues. Only enable if you fully understand the consequences</p>
|
||||
</x-callout>
|
||||
<div class="w-96">
|
||||
<div class="w-full sm:w-96">
|
||||
<x-forms.checkbox canGate="update" :canResource="$server" instantSave id="deleteUnusedVolumes"
|
||||
label="Delete Unused Volumes"
|
||||
helper="This option will remove all unused Docker volumes during cleanup.<br><br><strong>Warning: Data from stopped containers will be lost!</strong><br><br>Consequences include:<br>
|
||||
|
||||
@ -1,63 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use App\Models\Team;
|
||||
use App\Models\TeamInvitation;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
class TeamInvitationEmailNormalizationTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
uses(RefreshDatabase::class);
|
||||
|
||||
public function test_team_invitation_normalizes_email_to_lowercase()
|
||||
{
|
||||
// Create a team
|
||||
$team = Team::factory()->create();
|
||||
test('team invitation normalizes email to lowercase', function () {
|
||||
// Create a team
|
||||
$team = Team::factory()->create();
|
||||
|
||||
// Create invitation with mixed case email
|
||||
$invitation = TeamInvitation::create([
|
||||
'team_id' => $team->id,
|
||||
'uuid' => 'test-uuid-123',
|
||||
'email' => 'Test@Example.com', // Mixed case
|
||||
'role' => 'member',
|
||||
'link' => 'https://example.com/invite/test-uuid-123',
|
||||
'via' => 'link'
|
||||
]);
|
||||
// Create invitation with mixed case email
|
||||
$invitation = TeamInvitation::create([
|
||||
'team_id' => $team->id,
|
||||
'uuid' => 'test-uuid-123',
|
||||
'email' => 'Test@Example.com', // Mixed case
|
||||
'role' => 'member',
|
||||
'link' => 'https://example.com/invite/test-uuid-123',
|
||||
'via' => 'link',
|
||||
]);
|
||||
|
||||
// Verify email was normalized to lowercase
|
||||
$this->assertEquals('test@example.com', $invitation->email);
|
||||
}
|
||||
// Verify email was normalized to lowercase
|
||||
expect($invitation->email)->toBe('test@example.com');
|
||||
});
|
||||
|
||||
public function test_team_invitation_works_with_existing_user_email()
|
||||
{
|
||||
// Create a team
|
||||
$team = Team::factory()->create();
|
||||
test('team invitation works with existing user email', function () {
|
||||
// Create a team
|
||||
$team = Team::factory()->create();
|
||||
|
||||
// Create a user with lowercase email
|
||||
$user = User::factory()->create([
|
||||
'email' => 'test@example.com',
|
||||
'name' => 'Test User'
|
||||
]);
|
||||
// Create a user with lowercase email
|
||||
$user = User::factory()->create([
|
||||
'email' => 'test@example.com',
|
||||
'name' => 'Test User',
|
||||
]);
|
||||
|
||||
// Create invitation with mixed case email
|
||||
$invitation = TeamInvitation::create([
|
||||
'team_id' => $team->id,
|
||||
'uuid' => 'test-uuid-123',
|
||||
'email' => 'Test@Example.com', // Mixed case
|
||||
'role' => 'member',
|
||||
'link' => 'https://example.com/invite/test-uuid-123',
|
||||
'via' => 'link'
|
||||
]);
|
||||
// Create invitation with mixed case email
|
||||
$invitation = TeamInvitation::create([
|
||||
'team_id' => $team->id,
|
||||
'uuid' => 'test-uuid-123',
|
||||
'email' => 'Test@Example.com', // Mixed case
|
||||
'role' => 'member',
|
||||
'link' => 'https://example.com/invite/test-uuid-123',
|
||||
'via' => 'link',
|
||||
]);
|
||||
|
||||
// Verify the invitation email matches the user email (both normalized)
|
||||
$this->assertEquals($user->email, $invitation->email);
|
||||
// Verify the invitation email matches the user email (both normalized)
|
||||
expect($invitation->email)->toBe($user->email);
|
||||
|
||||
// Verify user lookup works
|
||||
$foundUser = User::whereEmail($invitation->email)->first();
|
||||
$this->assertNotNull($foundUser);
|
||||
$this->assertEquals($user->id, $foundUser->id);
|
||||
}
|
||||
}
|
||||
// Verify user lookup works
|
||||
$foundUser = User::whereEmail($invitation->email)->first();
|
||||
expect($foundUser)->not->toBeNull();
|
||||
expect($foundUser->id)->toBe($user->id);
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user