OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

TicketMailBodyTest.php

1 KB
<?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'));
    });
};