chore: fix unit tests

This commit is contained in:
Younes ENNAJI
2023-12-16 18:07:27 +01:00
parent 39201b888f
commit c2a013d1e9
2 changed files with 51 additions and 0 deletions
@@ -12,6 +12,7 @@ use Flasher\Prime\Notification\Notification;
use Flasher\Prime\Response\Presenter\HtmlPresenter;
use Flasher\Prime\Response\Response;
use Flasher\Tests\Prime\TestCase;
use Livewire\LivewireManager;
class HtmlPresenterTest extends TestCase
{
@@ -34,6 +35,8 @@ class HtmlPresenterTest extends TestCase
$notification->setType('warning');
$envelopes[] = new Envelope($notification);
$livewireListener = $this->getLivewireListenerScript();
$response = <<<JAVASCRIPT
<script type="text/javascript" class="flasher-js">
(function() {
@@ -88,6 +91,8 @@ class HtmlPresenterTest extends TestCase
document.addEventListener('flasher:render', function (event) {
render(event.detail);
});
{$livewireListener}
}
if (window.hasOwnProperty('flasher') || !rootScript || document.querySelector('script[src="' + rootScript + '"]')) {
@@ -136,4 +141,25 @@ JAVASCRIPT;
$this->assertEquals($response, $presenter->render(new Response($envelopes, array('envelopes_only' => true))));
}
/**
* Generate the script for Livewire event handling.
*
* @return string
*/
private function getLivewireListenerScript()
{
if (!class_exists(LivewireManager::class)) {
return '';
}
return <<<JAVASCRIPT
document.addEventListener('livewire:navigating', function () {
var elements = document.querySelectorAll('.fl-no-cache');
for (var i = 0; i < elements.length; i++) {
elements[i].remove();
}
});
JAVASCRIPT;
}
}
@@ -14,6 +14,7 @@ use Flasher\Prime\Stamp\CreatedAtStamp;
use Flasher\Prime\Stamp\UuidStamp;
use Flasher\Prime\Storage\StorageManager;
use Flasher\Tests\Prime\TestCase;
use Livewire\LivewireManager;
class ResponseManagerTest extends TestCase
{
@@ -46,6 +47,7 @@ class ResponseManagerTest extends TestCase
$storageManager->add($envelopes);
$responseManager = new ResponseManager(null, $storageManager);
$livewireListener = $this->getLivewireListenerScript();
$response = <<<JAVASCRIPT
<script type="text/javascript" class="flasher-js">
@@ -101,6 +103,8 @@ class ResponseManagerTest extends TestCase
document.addEventListener('flasher:render', function (event) {
render(event.detail);
});
{$livewireListener}
}
if (window.hasOwnProperty('flasher') || !rootScript || document.querySelector('script[src="' + rootScript + '"]')) {
@@ -132,4 +136,25 @@ JAVASCRIPT;
$responseManager = new ResponseManager();
$responseManager->render(array(), 'xml');
}
/**
* Generate the script for Livewire event handling.
*
* @return string
*/
private function getLivewireListenerScript()
{
if (!class_exists(LivewireManager::class)) {
return '';
}
return <<<JAVASCRIPT
document.addEventListener('livewire:navigating', function () {
var elements = document.querySelectorAll('.fl-no-cache');
for (var i = 0; i < elements.length; i++) {
elements[i].remove();
}
});
JAVASCRIPT;
}
}