previousHttpHost = $_SERVER['HTTP_HOST'] ?? null; $_SERVER['HTTP_HOST'] = config('domains.domains.crm.host'); $this->refreshApplication(); $this->artisan('migrate'); Carbon::setTestNow(Carbon::parse('2026-10-09 10:00:00')); Cache::flush(); config(['mivita.recognition_excluded_user_ids' => []]); }); afterEach(function () { Carbon::setTestNow(); // Host wieder zurücksetzen, sonst booten nachfolgende Tests mit den CRM-Routen. if ($this->previousHttpHost === null) { unset($_SERVER['HTTP_HOST']); } else { $_SERVER['HTTP_HOST'] = $this->previousHttpHost; } }); function recPageUser(string $firstName, string $lastName, array $attributes = []): User { $account = UserAccount::forceCreate(['first_name' => $firstName, 'last_name' => $lastName]); return User::forceCreate(array_merge([ 'email' => 'recp-'.uniqid('', true).'@example.com', 'password' => bcrypt('secret'), 'lang' => 'de', 'active' => 1, 'wizard' => 100, 'm_level' => 1, 'payment_account' => now()->addYear(), 'account_id' => $account->id, ], $attributes)); } function recPageVolume(int $userId, int $points, int $month): void { UserSalesVolume::forceCreate([ 'user_id' => $userId, 'month' => $month, 'year' => 2026, 'points' => $points, 'status' => 1, ]); } it('zeigt aktiven Beratern die Anerkennungen des Vormonats und die Live-Tabelle', function () { $viewer = recPageUser('Vera', 'Viewer'); $september = recPageUser('Sina', 'September'); $october = recPageUser('Otto', 'Oktober'); recPageVolume($september->id, 5808, 9); recPageVolume($october->id, 1234, 10); recPageVolume($viewer->id, 800, 10); $this->actingAs($viewer)->get(route('user_recognitions')) ->assertOk() ->assertSee('Unsere Erfolge im September 2026') ->assertSee('Vorläufig · wird am 03.10.2026 festgeschrieben', false) ->assertSee('Sina September') ->assertSee('5.808') ->assertSee('Live: So entwickelt sich der Oktober 2026') ->assertSee('Otto Oktober') ->assertSee('1.234') ->assertSee('