create([ 'tenant_id' => null, 'external_id' => 'platform', 'name' => 'Platform', ]); $user = PlatformUser::factory()->create([ 'email' => 'operator@tenantpilot.io', 'is_active' => true, ]); for ($i = 0; $i < 10; $i++) { Livewire::test(Login::class) ->set('data.email', $user->email) ->set('data.password', 'wrong-password') ->call('authenticate') ->assertHasErrors(['data.email']); } Livewire::test(Login::class) ->set('data.email', $user->email) ->set('data.password', 'wrong-password') ->call('authenticate') ->assertHasErrors(['data.email']); $auditCount = AuditLog::query() ->where('tenant_id', $platformTenant->getKey()) ->where('action', 'platform.auth.login') ->count(); expect($auditCount)->toBe(11); $latestAudit = AuditLog::query() ->where('tenant_id', $platformTenant->getKey()) ->where('action', 'platform.auth.login') ->latest('id') ->first(); expect($latestAudit)->not->toBeNull(); expect($latestAudit->metadata['reason'] ?? null)->toBe('throttled'); });