seed(DatabaseSeeder::class); $service = new RegistrationPeriodService; $election = Election::query()->where('code', 'PRN2026')->firstOrFail(); $this->assertTrue($service->isOpen($election)); $election->settings()->update([ 'is_registration_open' => false, 'is_registration_open_override' => null, ]); $election->refresh()->load('settings'); $this->assertFalse($service->isOpen($election)); } public function test_registration_override_can_explicitly_open_or_close(): void { $this->seed(DatabaseSeeder::class); $service = new RegistrationPeriodService; $election = Election::query()->where('code', 'PRN2026')->firstOrFail(); $election->settings()->update([ 'registration_start_date' => now()->subWeeks(4)->toDateString(), 'registration_end_date' => now()->subDay()->toDateString(), 'is_registration_open' => true, 'is_registration_open_override' => true, ]); $election->refresh()->load('settings'); $this->assertTrue($service->isOpen($election)); $election->settings()->update([ 'is_registration_open_override' => false, ]); $election->refresh()->load('settings'); $this->assertFalse($service->isOpen($election)); } }