mirror of
https://github.com/coollabsio/coolify.git
synced 2026-08-24 10:05:47 -05:00
Add shared status-summary and icon-tooltip components and wire them into application, service, and database headings, breadcrumbs, and previews. Badge production and PR domain links, prefer helper popups below the trigger, keep full wire targets for button loading, and cover the UI with feature tests.
70 lines
2.6 KiB
PHP
70 lines
2.6 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Blade;
|
|
|
|
it('disables the button and targets the wire click action while loading', function () {
|
|
$html = Blade::render(
|
|
'<x-forms.button wire:click.prevent="checkConnection"><x-reicon name="refresh" class="size-3.5" />Check connection</x-forms.button>'
|
|
);
|
|
|
|
expect($html)
|
|
->toContain('wire:loading.attr="disabled"')
|
|
->toContain('wire:loading.class="is-loading"')
|
|
->toContain('wire:target="checkConnection"')
|
|
->toContain('wire:loading')
|
|
->toContain('animate-spin')
|
|
->toContain('Check connection');
|
|
});
|
|
|
|
it('uses an explicit wire target for submit buttons without wire click', function () {
|
|
$html = Blade::render(
|
|
'<x-forms.button type="submit" wire:target="addToken">Validate and add</x-forms.button>'
|
|
);
|
|
|
|
expect($html)
|
|
->toContain('type="submit"')
|
|
->toContain('wire:loading.attr="disabled"')
|
|
->toContain('wire:loading.class="is-loading"')
|
|
->toContain('wire:target="addToken"')
|
|
->toContain('animate-spin')
|
|
->toContain('Validate and add');
|
|
});
|
|
|
|
it('keeps method arguments when deriving the loading target', function () {
|
|
$html = Blade::render(
|
|
'<x-forms.button wire:click="setPrivateKey(42)">Use this key</x-forms.button>'
|
|
);
|
|
|
|
expect($html)
|
|
->toContain('wire:target="setPrivateKey(42)"')
|
|
->toContain('wire:loading.attr="disabled"')
|
|
->toContain('wire:loading.class="is-loading"');
|
|
});
|
|
|
|
it('skips loading attributes when the loading indicator is disabled', function () {
|
|
$html = Blade::render(
|
|
'<x-forms.button wire:click="checkConnection" :showLoadingIndicator="false">Check connection</x-forms.button>'
|
|
);
|
|
|
|
expect($html)
|
|
->not->toContain('wire:loading.attr="disabled"')
|
|
->not->toContain('wire:loading.class="is-loading"')
|
|
->not->toContain('animate-spin')
|
|
->toContain('Check connection');
|
|
});
|
|
|
|
it('hides static button icons with the shared is-loading utility', function () {
|
|
$css = file_get_contents(resource_path('css/utilities.css'));
|
|
|
|
expect($css)->toContain('.button.is-loading > svg:not(.animate-spin)');
|
|
});
|
|
|
|
it('applies automatic loading behavior on the server private key check connection button', function () {
|
|
$view = file_get_contents(resource_path('views/livewire/server/private-key/show.blade.php'));
|
|
|
|
expect($view)
|
|
->toContain('wire:click.prevent="checkConnection"')
|
|
->toContain('<x-reicon name="refresh" class="size-3.5" />')
|
|
->toContain('<x-forms.button canGate="update" :canResource="$server"');
|
|
});
|