Fix-Runde 1: der WG-Endpunkt-Zweig der Ausnahmeliste bekommt einen Test

Die drei hart verdrahteten Adressen waren belegt, der vierte Eintrag —
die eigene öffentliche Adresse aus CLUPILOT_WG_ENDPOINT — lief in der
Testumgebung nie durch, weil die Variable dort leer ist. Setzt die
Einstellung, prüft die Ausnahme UND die Gegenprobe am Nachbarn in
derselben Zeile, damit der Test nicht bloß beweist, dass gar nichts mehr
gesperrt wird.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
feat/versandtakt
nexxo 2026-08-03 13:25:36 +02:00
parent fc3ff3cb28
commit 09cb8aea5c
1 changed files with 16 additions and 0 deletions

View File

@ -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();
});