mirror of
https://github.com/tiennm99/coolify.git
synced 2026-08-25 18:25:58 +00:00
Only show the copy control when isSecureContext and clipboard.writeText are available, and style the empty internal hostname state as a readonly input to match adjacent fields.
59 lines
2.1 KiB
PHP
59 lines
2.1 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Blade;
|
|
use Illuminate\Support\MessageBag;
|
|
use Illuminate\Support\ViewErrorBag;
|
|
|
|
beforeEach(function () {
|
|
$errors = new ViewErrorBag;
|
|
$errors->put('default', new MessageBag);
|
|
view()->share('errors', $errors);
|
|
});
|
|
|
|
it('keeps the resource details helper text visible below the modal header', function () {
|
|
$html = view('livewire.project.shared.resource-details', [
|
|
'resource' => (object) [
|
|
'name' => 'Crash Loop Example',
|
|
'uuid' => 'crashloop',
|
|
],
|
|
'environment_uuid' => null,
|
|
'environment_name' => null,
|
|
'project_uuid' => null,
|
|
'project_name' => null,
|
|
'server_uuid' => null,
|
|
'server_name' => null,
|
|
'stack_applications' => [],
|
|
'stack_databases' => [],
|
|
])->render();
|
|
|
|
expect($html)
|
|
->toContain('Identifiers for this resource. Read-only')
|
|
->toContain('pt-1')
|
|
->not->toContain('-mt-4');
|
|
});
|
|
|
|
it('renders copy fields as visible readonly controls with an accessible copy action', function () {
|
|
$html = Blade::render('<x-forms.copy-button label="UUID" text="crashloop" />');
|
|
|
|
expect($html)
|
|
->toContain('label class="flex gap-1 items-center mb-1 text-sm font-medium text-black dark:text-white"')
|
|
->toContain('readonly')
|
|
->toContain("canCopy: window.isSecureContext && typeof navigator.clipboard?.writeText === 'function'")
|
|
->toContain("x-bind:class=\"{ 'input-with-copy-button': canCopy }\"")
|
|
->toContain('x-show="canCopy"')
|
|
->toContain('copy-button')
|
|
->toContain('aria-label="Copy to clipboard"')
|
|
->toContain('title="Copy to clipboard"')
|
|
->toContain('class="size-[18px] text-green-500"');
|
|
});
|
|
|
|
it('keeps copy button padding above settings-workspace input overrides', function () {
|
|
$css = file_get_contents(resource_path('css/app.css'));
|
|
|
|
expect($css)
|
|
->toContain('.input.input-with-copy-button')
|
|
->toContain('.application-settings-workspace .input.input-with-copy-button')
|
|
->toContain('.application-settings-form .input.input-with-copy-button')
|
|
->toContain('padding-right: 2.5rem');
|
|
});
|