create([ 'event_credits_balance' => 4, ]); $package = Package::factory()->reseller()->create([ 'name_translations' => [ 'de' => 'Premium Paket', 'en' => 'Premium Package', ], 'max_events_per_year' => 10, ]); TenantPackage::factory()->create([ 'tenant_id' => $tenant->id, 'package_id' => $package->id, 'price' => 149.00, 'purchased_at' => now()->subDay(), 'expires_at' => now()->addMonth(), 'used_events' => 1, 'active' => true, ]); $user = User::factory() ->unverified() ->create([ 'tenant_id' => $tenant->id, 'role' => 'tenant_admin', ]); $event = Event::factory()->for($tenant)->create([ 'status' => 'published', 'is_active' => true, 'date' => now()->addDays(7), 'name' => ['de' => 'Sommerfest', 'en' => 'Summer Party'], ]); $task = Task::factory()->create([ 'tenant_id' => $tenant->id, 'is_completed' => true, ]); $event->tasks()->attach($task); Photo::factory()->for($event)->create([ 'tenant_id' => $tenant->id, 'created_at' => now()->subDay(), ]); PackagePurchase::factory()->create([ 'tenant_id' => $tenant->id, 'package_id' => $package->id, 'price' => 149.00, 'type' => 'reseller_subscription', 'provider' => 'paddle', 'purchased_at' => now()->subDay(), ]); $this->actingAs($user); $response = $this->get(route('dashboard')); $response->assertStatus(200) ->assertInertia(fn (AssertableInertia $page) => $page ->component('dashboard') ->has('metrics', fn (AssertableInertia $metrics) => $metrics ->where('active_events', 1) ->where('total_events', 1) ->where('task_progress', 100) ->where('upcoming_events', 1) ->where('new_photos', 1) ->etc() ) ->where('tenant.activePackage.name', 'Premium Paket') ->where('tenant.activePackage.remainingEvents', 9) ->has('onboarding', fn (AssertableInertia $steps) => $steps ->where('0.key', 'admin_app') ->where('1.done', true) ->etc() ) ->has('upcomingEvents', 1) ->has('recentPurchases', 1) ->where('emailVerification.mustVerify', true) ->where('emailVerification.verified', false) ); } }