39 lines
1.1 KiB
PHP
39 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\Services\Whatsapp;
|
|
|
|
use App\Events\WhatsappInvitesSend;
|
|
use App\Services\Whatsapp\WhatsappInviteNotificationService;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Support\Facades\Event;
|
|
use Tests\TestCase;
|
|
|
|
class WhatsappInviteNotificationServiceTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
public function test_dispatch_returns_error_when_no_listeners(): void
|
|
{
|
|
$service = new WhatsappInviteNotificationService;
|
|
$result = $service->dispatch([], '2025-2026', 'Fall');
|
|
|
|
$this->assertFalse($result['ok']);
|
|
}
|
|
|
|
public function test_dispatch_triggers_event_when_listener_registered(): void
|
|
{
|
|
Event::listen(WhatsappInvitesSend::class, static function () {});
|
|
|
|
$service = new WhatsappInviteNotificationService;
|
|
$result = $service->dispatch([[
|
|
'parent' => ['id' => 10],
|
|
'emails' => ['parent1@example.com'],
|
|
'sections' => [],
|
|
'links' => ['https://chat.whatsapp.com/abc'],
|
|
]], '2025-2026', 'Fall');
|
|
|
|
$this->assertTrue($result['ok']);
|
|
$this->assertSame(1, $result['triggered']);
|
|
}
|
|
}
|