misc updates with tests failing
This commit is contained in:
@@ -187,34 +187,14 @@ JS);
|
||||
return (bool) $browser->script(<<<'JS'
|
||||
const input = document.querySelector('#attachments');
|
||||
const button = document.querySelector('[dusk="ticket-create-submit"], [data-dusk="ticket-create-submit"]');
|
||||
|
||||
const isVisible = (element) => {
|
||||
if (! element) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const style = window.getComputedStyle(element);
|
||||
|
||||
return style.display !== 'none'
|
||||
&& style.visibility !== 'hidden'
|
||||
&& style.opacity !== '0'
|
||||
&& element.getClientRects().length > 0;
|
||||
};
|
||||
|
||||
const visibleUploadText = Array.from(document.querySelectorAll('div, span'))
|
||||
.some((element) => {
|
||||
const text = (element.textContent || '').trim();
|
||||
|
||||
return (text.includes('Uploading attachments...') || text === 'Uploading...')
|
||||
&& isVisible(element);
|
||||
});
|
||||
const selected = document.querySelector('[dusk="ticket-create-selected-attachments"], [data-dusk="ticket-create-selected-attachments"]');
|
||||
|
||||
return Boolean(input)
|
||||
&& input.files.length > 0
|
||||
&& Boolean(selected)
|
||||
&& Boolean(button)
|
||||
&& button.disabled === false
|
||||
&& visibleUploadText === false;
|
||||
&& button.disabled === false;
|
||||
JS)[0];
|
||||
}, 'The attachment upload did not finish before submit.');
|
||||
}, 'The Livewire temporary attachment upload did not finish before submit.');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,45 +8,39 @@ use Tests\TestCase;
|
||||
|
||||
final class TicketCreateAttachmentBrowserSafetyTest extends TestCase
|
||||
{
|
||||
public function test_ticket_create_view_does_not_reinject_application_assets_inside_livewire_component(): void
|
||||
public function test_ticket_create_uses_standard_livewire_temporary_uploads(): void
|
||||
{
|
||||
$view = file_get_contents(dirname(__DIR__, 2) . '/Resources/views/livewire/ticket-create.blade.php');
|
||||
|
||||
self::assertIsString($view);
|
||||
self::assertStringNotContainsString("@vite(['resources/css/app.css', 'resources/js/app.js'])", $view);
|
||||
self::assertStringContainsString('wire:submit.prevent="save"', $view);
|
||||
}
|
||||
|
||||
public function test_ticket_create_attachment_input_is_owned_by_livewire_and_has_a_stable_key(): void
|
||||
{
|
||||
$view = file_get_contents(dirname(__DIR__, 2) . '/Resources/views/livewire/ticket-create.blade.php');
|
||||
|
||||
self::assertIsString($view);
|
||||
self::assertStringContainsString('wire:key="ticket-create-attachments-uploader"', $view);
|
||||
self::assertStringContainsString('type="file"', $view);
|
||||
self::assertStringContainsString('wire:model="attachments"', $view);
|
||||
self::assertStringContainsString('multiple', $view);
|
||||
self::assertStringContainsString('wire:key="ticket-create-attachments-input"', $view);
|
||||
self::assertStringContainsString('type="file" wire:model="attachments" multiple', $view);
|
||||
self::assertStringNotContainsString('$wire.uploadMultiple', $view);
|
||||
self::assertStringNotContainsString("new CustomEvent('livewire-upload-start'", $view);
|
||||
self::assertStringNotContainsString("new CustomEvent('livewire-upload-finish'", $view);
|
||||
}
|
||||
|
||||
public function test_ticket_create_attachment_script_registers_global_listeners_once(): void
|
||||
public function test_ticket_create_does_not_mix_existing_ticket_upload_behaviour_into_create_form(): void
|
||||
{
|
||||
$view = file_get_contents(dirname(__DIR__, 2) . '/Resources/views/livewire/ticket-create.blade.php');
|
||||
|
||||
self::assertIsString($view);
|
||||
self::assertStringContainsString('window.__helpdeskTicketCreateAttachmentListenersRegistered', $view);
|
||||
self::assertStringContainsString('window.__helpdeskTicketCreateLivewireClearListenerRegistered', $view);
|
||||
self::assertStringContainsString("window.dispatchEvent(new CustomEvent('helpdesk-attachments-reset'))", $view);
|
||||
self::assertStringNotContainsString('@vite([\'resources/css/app.css\', \'resources/js/app.js\'])', $view);
|
||||
self::assertStringNotContainsString('helpdeskAttachmentDropzone', $view);
|
||||
self::assertStringNotContainsString('DataTransfer', $view);
|
||||
self::assertStringNotContainsString('$wire.uploadMultiple', $view);
|
||||
self::assertStringNotContainsString('input.files =', $view);
|
||||
self::assertStringNotContainsString('helpdesk-editor-files-pasted', $view);
|
||||
self::assertStringNotContainsString('x-bind:disabled="helpdeskAttachmentsUploading"', $view);
|
||||
}
|
||||
|
||||
public function test_create_attachment_browser_test_does_not_use_livewire_internal_dom_selectors(): void
|
||||
public function test_ticket_create_shows_uploaded_temporary_file_names_from_livewire_property(): void
|
||||
{
|
||||
$test = file_get_contents(dirname(__DIR__, 1) . '/Browser/HelpdeskCreateTicketAttachmentBrowserTest.php');
|
||||
$view = file_get_contents(dirname(__DIR__, 2) . '/Resources/views/livewire/ticket-create.blade.php');
|
||||
|
||||
self::assertIsString($test);
|
||||
self::assertStringNotContainsString('closest(', $test);
|
||||
self::assertStringNotContainsString('Livewire.find', $test);
|
||||
self::assertStringContainsString("attach('#attachments'", $test);
|
||||
self::assertIsString($view);
|
||||
self::assertStringContainsString('@if (count($attachments) > 0)', $view);
|
||||
self::assertStringContainsString('$attachment->getClientOriginalName()', $view);
|
||||
self::assertStringContainsString('wire:loading wire:target="attachments"', $view);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user