From 14bd07d4a881356f9f4c3c25a01e4609f4a9b4aa Mon Sep 17 00:00:00 2001 From: Philipp Lang <philipp@aweos.de> Date: Wed, 16 Nov 2022 16:30:23 +0100 Subject: [PATCH] Add test for activity --- database/factories/ActivityFactory.php | 5 ++++ database/factories/SubactivityFactory.php | 10 ++++++++ tests/Feature/Member/IndexTest.php | 28 +++++++++++++++++++++++ 3 files changed, 43 insertions(+) diff --git a/database/factories/ActivityFactory.php b/database/factories/ActivityFactory.php index 2202a642..01b8b1d3 100644 --- a/database/factories/ActivityFactory.php +++ b/database/factories/ActivityFactory.php @@ -29,4 +29,9 @@ class ActivityFactory extends Factory { return $this->state(['nami_id' => $namiId]); } + + public function name(string $name): self + { + return $this->state(['name' => $name]); + } } diff --git a/database/factories/SubactivityFactory.php b/database/factories/SubactivityFactory.php index 030f719a..d53b75e2 100644 --- a/database/factories/SubactivityFactory.php +++ b/database/factories/SubactivityFactory.php @@ -34,4 +34,14 @@ class SubactivityFactory extends Factory { return $this->state(['is_age_group' => true]); } + + public function name(string $name): self + { + return $this->state(['name' => $name]); + } + + public function filterable(): self + { + return $this->state(['is_filterable' => true]); + } } diff --git a/tests/Feature/Member/IndexTest.php b/tests/Feature/Member/IndexTest.php index 016a93a1..d5532955 100644 --- a/tests/Feature/Member/IndexTest.php +++ b/tests/Feature/Member/IndexTest.php @@ -72,4 +72,32 @@ class IndexTest extends TestCase $this->assertInertiaHas(false, $response, 'data.data.1.is_leader'); $this->assertInertiaHas(false, $response, 'data.data.2.is_leader'); } + + public function testItShowsAgeGroupIcon(): void + { + $this->withoutExceptionHandling(); + $this->login()->loginNami(); + $member = Member::factory() + ->defaults() + ->has(Membership::factory()->for(Subactivity::factory()->ageGroup()->name('Wölfling'))->for(Activity::factory()->state(['has_efz' => false]))) + ->create(); + + $response = $this->get('/member'); + + $this->assertInertiaHas('woelfling', $response, 'data.data.0.age_group_icon'); + } + + public function testItShowsActivitiesAndSubactivities(): void + { + $this->withoutExceptionHandling(); + $this->login()->loginNami(); + $activity = Activity::factory()->hasAttached(Subactivity::factory()->name('SG Nahost')->ageGroup()->filterable())->name('Mitglied')->create(); + $subactivity = $activity->subactivities->first(); + + $response = $this->get('/member'); + + $this->assertInertiaHas('SG Nahost', $response, "subactivities.{$activity->id}.{$subactivity->id}"); + $this->assertInertiaHas('SG Nahost', $response, "filterSubactivities.{$subactivity->id}"); + $this->assertInertiaHas('Mitglied', $response, "activities.{$activity->id}"); + } }