© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
FilamentF
Filament•2y ago
Willy

Testing Repeater

I'm testing a repeater, and for some reason I get a distinct validation error.

it('should show an error when the email is duplicated in the form', function () {
        Repeater::fake();

        actingAs(User::factory()->create());

        $team = Team::factory()->create();
        Filament::setTenant($team);

        livewire(Members::class)
            ->fillForm([
                'emailAddresses' => [
                    ['email' => 'duplicated@mail.com'],
                    ['email' => 'duplicated@mail.com'],
                ],
            ])
            ->call('create')
            ->assertHasFormErrors([
                'emailAddresses.0.email' => 'distinct',
                'emailAddresses.1.email' => 'distinct',
            ]);
    });
it('should show an error when the email is duplicated in the form', function () {
        Repeater::fake();

        actingAs(User::factory()->create());

        $team = Team::factory()->create();
        Filament::setTenant($team);

        livewire(Members::class)
            ->fillForm([
                'emailAddresses' => [
                    ['email' => 'duplicated@mail.com'],
                    ['email' => 'duplicated@mail.com'],
                ],
            ])
            ->call('create')
            ->assertHasFormErrors([
                'emailAddresses.0.email' => 'distinct',
                'emailAddresses.1.email' => 'distinct',
            ]);
    });


Repeater::make('emailAddresses')
                            ->label(__('filament/clusters/settings/pages/team/members.form.repeater.label'))
                            ->minItems(1)
                            ->maxItems(5)
                            ->defaultItems(1)
                            ->deletable(fn($state) => is_array($state) && count($state) > 1)
                            ->reorderable(false)
                            ->addActionLabel(__('filament/clusters/settings/pages/team/members.form.repeater.addActionLabel'))
                            ->simple(
                                TextInput::make('email')
                                    ->required()
                                    ->placeholder('example@mail.com')
                                    ->email()
                                    ->distinct()
                                    ->unique(Invitation::class),
                            ),
Repeater::make('emailAddresses')
                            ->label(__('filament/clusters/settings/pages/team/members.form.repeater.label'))
                            ->minItems(1)
                            ->maxItems(5)
                            ->defaultItems(1)
                            ->deletable(fn($state) => is_array($state) && count($state) > 1)
                            ->reorderable(false)
                            ->addActionLabel(__('filament/clusters/settings/pages/team/members.form.repeater.addActionLabel'))
                            ->simple(
                                TextInput::make('email')
                                    ->required()
                                    ->placeholder('example@mail.com')
                                    ->email()
                                    ->distinct()
                                    ->unique(Invitation::class),
                            ),
Filament banner
FilamentJoin
A powerful open source UI framework for Laravel • Build and ship admin panels & apps fast with Livewire
20,307Members
Resources
Was this page helpful?

Similar Threads

Recent Announcements

Similar Threads

Testing repeater
FilamentFFilament / ❓┊help
3y ago
Testing Repeater component
FilamentFFilament / ❓┊help
2y ago
Testing repeater fields
FilamentFFilament / ❓┊help
3y ago
Testing repeater if field exists
FilamentFFilament / ❓┊help
5mo ago