Files
animethemes-server/tests/Feature/Events/Admin/AnnouncementTest.php
T
2026-04-23 00:48:53 -03:00

49 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
use App\Events\Admin\Announcement\AnnouncementCreated;
use App\Events\Admin\Announcement\AnnouncementDeleted;
use App\Events\Admin\Announcement\AnnouncementUpdated;
use App\Models\Admin\Announcement;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Event;
test('announcement created event dispatched', function (): void {
Announcement::factory()->create();
Event::assertDispatched(AnnouncementCreated::class);
});
test('announcement deleted event dispatched', function (): void {
$announcement = Announcement::factory()->create();
$announcement->delete();
Event::assertDispatched(AnnouncementDeleted::class);
});
test('announcement updated event dispatched', function (): void {
$announcement = Announcement::factory()->createOne();
$changes = Announcement::factory()->makeOne();
$announcement->fill($changes->getAttributes());
$announcement->save();
Event::assertDispatched(AnnouncementUpdated::class);
});
test('announcement updated event embed fields', function (): void {
$announcement = Announcement::factory()->createOne();
$changes = Announcement::factory()->makeOne();
$announcement->fill($changes->getAttributes());
$announcement->save();
Event::assertDispatched(AnnouncementUpdated::class, function (AnnouncementUpdated $event): bool {
$message = $event->getDiscordMessage();
return filled(Arr::get($message->embed, 'fields'));
});
});