'adt-'.uniqid('', true).'@example.com', 'password' => bcrypt('secret'), 'lang' => 'de', 'm_level' => 1, 'payment_account' => now()->addYear(), ]); $abo = UserAbo::create([ 'user_id' => $user->id, 'member_id' => $user->id, 'shopping_user_id' => 0, 'email' => 'adt-abo-'.uniqid('', true).'@example.com', 'is_for' => 'me', 'payone_userid' => 0, 'clearingtype' => 'cc', 'amount' => 5000, 'active' => true, 'status' => 2, 'abo_interval' => 5, 'start_date' => '2026-01-05', 'last_date' => '2026-06-05', 'next_date' => '2026-08-05', ]); for ($i = 0; $i < $paidDeliveries; $i++) { UserAboOrder::create([ 'user_abo_id' => $abo->id, 'shopping_order_id' => 0, 'status' => 2, 'paid' => true, ]); } return $abo; } it('sortiert die Admin-Abo-Tabelle nach Lieferungen ohne SQL-Fehler', function (): void { URL::resolveMissingNamedRoutesUsing(fn (string $name, $parameters = []) => '/'.$name); $aboFew = adtMakeAboWithDeliveries(1); $aboMany = adtMakeAboWithDeliveries(3); request()->merge([ 'draw' => 1, 'start' => 0, 'length' => 10, 'search' => ['value' => '', 'regex' => 'false'], 'columns' => [ ['data' => 'count', 'name' => 'count', 'searchable' => 'false', 'orderable' => 'true', 'search' => ['value' => '', 'regex' => 'false']], ], 'order' => [['column' => 0, 'dir' => 'desc']], ]); $data = app(AboController::class)->datatable()->getData(true); expect($data['data'])->toHaveCount(2) ->and((int) $data['data'][0]['count'])->toBe(3) ->and((int) $data['data'][1]['count'])->toBe(1); request()->merge(['order' => [['column' => 0, 'dir' => 'asc']]]); $data = app(AboController::class)->datatable()->getData(true); expect((int) $data['data'][0]['count'])->toBe(1) ->and((int) $data['data'][1]['count'])->toBe(3); });