diff --git a/scripts/update.sh b/scripts/update.sh index ad693db..982e42e 100755 --- a/scripts/update.sh +++ b/scripts/update.sh @@ -41,7 +41,7 @@ done # ── Pfade ──────────────────────────────────────────────────────────────────── SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_DIR="$SCRIPT_DIR" +PROJECT_DIR="$(dirname "$SCRIPT_DIR")" cd "$PROJECT_DIR" # ── Farben ─────────────────────────────────────────────────────────────────── diff --git a/tests/06_EuerBuchungsTest.php b/tests/06_EuerBuchungsTest.php index 5d027a4..4da04ed 100644 --- a/tests/06_EuerBuchungsTest.php +++ b/tests/06_EuerBuchungsTest.php @@ -17,6 +17,11 @@ class EuerBuchungsTest extends TestCase { $datum = date('Y-m-d'); + // EÜR-Snapshot vor allen Testbuchungen + $euerVorher = (new \Steuerkram\Services\EuerCalculator())->calculate((int)date('Y')); + $einnahmenVorher = (float)$euerVorher['total_einnahmen']; + $gewinnVorher = (float)$euerVorher['gewinn']; + // ── Kontenarten prüfen ─────────────────────────────────────── $kontenarten = \Steuerkram\Database::fetchAll( "SELECT DISTINCT kontenart FROM accounts ORDER BY kontenart" @@ -121,16 +126,17 @@ class EuerBuchungsTest extends TestCase $this->assertEquals($stornoId, (int)$origNeu['reversed_by'], 'Original verweist auf Storno-Buchung'); // ── EÜR-Berechnung ─────────────────────────────────────────── - $euer = (new \Steuerkram\Services\EuerCalculator())->calculate((int)date('Y')); + // Nach Einnahme (1000 €) + stornierter Ausgabe: Delta muss +1000 € betragen + $euerNachher = (new \Steuerkram\Services\EuerCalculator())->calculate((int)date('Y')); $this->assert( - (float)$euer['total_einnahmen'] >= 1000.00, + (float)$euerNachher['total_einnahmen'] >= $einnahmenVorher + 1000.00, 'EÜR: Einnahmen enthalten die 1000 € Einnahme-Buchung' ); - // Ausgabe wurde storniert → sollte nicht in den Ausgaben erscheinen (is_reversal=0 Filter) + // Ausgabe wurde storniert → Netto-Effekt auf Gewinn: +1000 € $this->assert( - (float)$euer['gewinn'] > 0, - 'EÜR: Gewinn ist positiv (Einnahmen > Ausgaben nach Storno)' + (float)$euerNachher['gewinn'] >= $gewinnVorher + 1000.00, + 'EÜR: Gewinn ist um ≥ 1000 € gestiegen (Einnahme + stornierte Ausgabe)' ); } }