diff --git a/tests/Feature/Security/BlockAddressTest.php b/tests/Feature/Security/BlockAddressTest.php index 2a0454d..0d97e8e 100644 --- a/tests/Feature/Security/BlockAddressTest.php +++ b/tests/Feature/Security/BlockAddressTest.php @@ -67,3 +67,19 @@ it('haelt eine laufende Sperre nicht zweimal', function () { expect($dienst->forInstance($instance, '203.0.113.7', 10))->toBeNull() ->and(SecurityBlock::count())->toBe(1); }); + +it('sperrt niemals die eigene oeffentliche Adresse des CluPilot-Servers', function () { + // Der vierte Eintrag der Ausnahmeliste, und der einzige, der nicht hart + // verdrahtet ist. Ohne diesen Test bliebe er unbelegt — ausgerechnet der, + // der verhindert, dass sich der Server selbst aussperrt. + config()->set('provisioning.wireguard.endpoint', '203.0.113.10:51820'); + + $host = Host::factory()->create(); + + expect(app(BlockAddress::class)->forHost($host, '203.0.113.10', 999))->toBeNull() + ->and(SecurityBlock::count())->toBe(0); + + // Und die Gegenprobe, damit der Test nicht bloss beweist, dass gar nichts + // gesperrt wird: der Nachbar in derselben Zeile ist NICHT ausgenommen. + expect(app(BlockAddress::class)->forHost($host, '203.0.113.11', 999))->not->toBeNull(); +});