simedkom/docs/testing-notifications.md
Yoga Pangestu 1cdbaaaacc Add comprehensive documentation for testing schemas and tables
- Introduced `testing-schemas.md` with detailed instructions on filling forms, asserting schema states, validating forms, and testing visibility and existence of form fields and components.
- Added `testing-tables.md` covering table rendering, column testing, searching, sorting, filtering, and summarizing, along with visibility and existence checks for filters and columns.
2026-04-08 14:19:09 +07:00

2.0 KiB

Testing Notifications

Testing Session Notifications

To check if a notification was sent using the session, use the assertNotified() helper:

use function Pest\Livewire\livewire;

it('sends a notification', function () {
    livewire(CreatePost::class)
        ->assertNotified();
});
use Filament\Notifications\Notification;

it('sends a notification', function () {
    Notification::assertNotified();
});
use function Filament\Notifications\Testing\assertNotified;

it('sends a notification', function () {
    assertNotified();
});

You may optionally pass a notification title to test for:

use Filament\Notifications\Notification;
use function Pest\Livewire\livewire;

it('sends a notification', function () {
    livewire(CreatePost::class)
        ->assertNotified('Unable to create post');
});

Or test if the exact notification was sent:

use Filament\Notifications\Notification;
use function Pest\Livewire\livewire;

it('sends a notification', function () {
    livewire(CreatePost::class)
        ->assertNotified(
            Notification::make()
                ->danger()
                ->title('Unable to create post')
                ->body('Something went wrong.'),
        );
});

Conversely, you can assert that a notification was not sent:

use Filament\Notifications\Notification;
use function Pest\Livewire\livewire;

it('does not send a notification', function () {
    livewire(CreatePost::class)
        ->assertNotNotified()
        // or
        ->assertNotNotified('Unable to create post')
        // or
        ->assertNotNotified(
            Notification::make()
                ->danger()
                ->title('Unable to create post')
                ->body('Something went wrong.'),
        );
});
    // or
    ->assertNotNotified(
        Notification::make()
            ->danger()
            ->title('Unable to create post')
            ->body('Something went wrong.'),
    );