Quelltext des aktuellen Standes
<?php
declare(strict_types=1);
use OpenNIT\Tickets\TicketManager;
/**
* Deckt die (DB-freie) Aufbereitung ausgehender Ticket-Mail-Bodies ab –
* insbesondere den Umgang mit nicht auflösbaren Link-Platzhaltern.
*/
return static function (): void {
test('Anker mit leerem href werden vollständig entfernt', function () {
$body = TicketManager::finalizeOutgoingBody(
'<p>Hallo,</p><p><a href="">Ticket öffnen</a></p><p>Viele Grüße</p>'
);
assertFalse(str_contains($body, 'Ticket öffnen'), 'Link-Text ohne Ziel darf nicht in der Mail bleiben');
assertTrue(str_contains($body, 'Hallo,'), 'übriger Inhalt bleibt erhalten');
assertTrue(str_contains($body, 'Viele Grüße'), 'übriger Inhalt bleibt erhalten');
});
test('Anker mit gültigem Ziel bleiben unangetastet', function () {
$body = TicketManager::finalizeOutgoingBody(
'<p><a href="https://itdoku.example.com/tickets/42">Ticket öffnen</a></p>'
);
assertTrue(str_contains($body, 'https://itdoku.example.com/tickets/42'));
assertTrue(str_contains($body, 'Ticket öffnen'));
});
test('Fragment-Body wird in HTML-Grundgerüst verpackt', function () {
$body = TicketManager::finalizeOutgoingBody('<p>Inhalt</p>');
assertTrue(stripos($body, '<html') !== false, 'HTML-Rahmen fehlt');
assertTrue(str_contains($body, 'Inhalt'));
});
};