agb()->create(['version' => '0.5', 'effective_from' => '2026-06-01']); $current = LegalDocument::factory()->agb()->create(['version' => '0.6', 'effective_from' => '2026-07-03']); // Zukünftige Fassung: veröffentlicht, aber noch nicht wirksam. LegalDocument::factory()->agb()->create(['version' => '0.7', 'effective_from' => now()->addMonth()->toDateString()]); expect(LegalDocument::current(LegalDocument::TYPE_AGB)?->id)->toBe($current->id); expect(LegalDocument::currentAgbVersion())->toBe('0.6'); }); test('the agb version falls back to the config while the table is empty', function () { config()->set('legal.agb_version', '9.9'); expect(LegalDocument::current(LegalDocument::TYPE_AGB))->toBeNull(); expect(LegalDocument::currentAgbVersion())->toBe('9.9'); }); test('the seeder registers all five legal documents idempotently', function () { /** @var TestCase $this */ $this->seed(LegalDocumentSeeder::class); $this->seed(LegalDocumentSeeder::class); // Wiederholung darf nichts duplizieren. expect(LegalDocument::query()->count())->toBe(5); expect(LegalDocument::currentAgbVersion())->toBe('0.6'); expect(LegalDocument::current(LegalDocument::TYPE_DATENSCHUTZ)?->version)->toBe('0.3'); }); test('the agb page renders version and effective date from the database', function () { /** @var TestCase $this */ LegalDocument::factory()->agb()->create(['version' => '0.6', 'effective_from' => '2026-07-03']); $this->get('https://pressekonto.test/de/agb') ->assertSuccessful() ->assertSeeText('Version 0.6') ->assertSeeText('Stand: 3. Juli 2026'); });