FilamentF
Filament2y ago
42 replies
Lucky0

UnitTest (bug)?

I am wondering why the code below only works for sorting 'name' but not 'email'.

use App\Filament\Admin\Resources\UserResource;
use App\Models\User;
use function Pest\Livewire\livewire;

describe(
    'can sort users by: ',
    fn() => collect([
        'name',
        'email'
    ])->each(function ($column) {
        test($column, function () use ($column) {
            $users = User::get();

            livewire(UserResource\Pages\ListUsers::class)
                ->sortTable($column)
                ->assertCanSeeTableRecords($users->sortBy($column), inOrder: true)
                ->sortTable($column, 'desc')
                ->assertCanSeeTableRecords($users->sortByDesc($column), inOrder: true);
        });
    })
);


UserResource:

public static function table(Table $table): Table
    {
        return $table
            ->columns([
                Tables\Columns\TextColumn::make('name')
                    ->sortable()
                    ->searchable(),
                Tables\Columns\TextColumn::make('email')
                    ->sortable()
                    ->searchable(),
Was this page helpful?