Steuerkram/tests/14_UstBruttoAnzeigeTest.php

57 lines
1.8 KiB
PHP

<?php
declare(strict_types=1);
/**
* Test 14: USt- und Brutto-Anzeige im Buchungsformular
*
* Prüft, dass die notwendigen HTML-Elemente und die JS-Funktion
* updateNettoAnzeige() im Beleg-Detailview vorhanden sind.
*/
class UstBruttoAnzeigeTest extends TestCase
{
protected string $testName = 'Test 14: USt- und Brutto-Anzeige im Buchungsformular';
public function run(): void
{
$viewFile = __DIR__ . '/../src/Views/belege/detail.php';
$content = file_get_contents($viewFile);
$this->assert(
$content !== false,
'View-Datei belege/detail.php ist lesbar'
);
$this->assert(
str_contains($content, 'id="betrag_netto_input"'),
'Nettobetrag-Input hat id="betrag_netto_input"'
);
$this->assert(
str_contains($content, 'id="ust_brutto_anzeige"'),
'Anzeigebereich id="ust_brutto_anzeige" vorhanden'
);
$this->assert(
str_contains($content, 'oninput="updateNettoAnzeige()"'),
'Nettobetrag-Input ruft updateNettoAnzeige() bei Eingabe auf'
);
$this->assert(
str_contains($content, 'function updateNettoAnzeige()'),
'JavaScript-Funktion updateNettoAnzeige() ist definiert'
);
$this->assert(
str_contains($content, 'updateNettoAnzeige();updateNettoAnzeige()') === false
&& str_contains($content, 'updateNettoAnzeige()'),
'updateNettoAnzeige() wird an mehreren Stellen aufgerufen'
);
// Prüfe dass USt-Satz-Änderung auch updateNettoAnzeige aufruft
$this->assert(
str_contains($content, 'updateSteuerartVisibility();updateNettoAnzeige()'),
'USt-Satz-Änderung löst auch updateNettoAnzeige() aus'
);
}
}