Zum Hauptinhalt springen

Bekannte Test-Failures

39 Tests scheitern im SQLite-In-Memory-Testmodus. Alle Tests laufen auf der PostgreSQL-Produktions-DB korrekt. Stand: 2026-03-05.

Erledigte Items (Test-Audit 2026-03-05)

  • ExampleTest-Stubs entfernt: tests/Feature/ExampleTest.php und tests/Unit/ExampleTest.php gelöscht.
  • 19 Placeholder-Assertions ersetzt: expect(true)->toBeTrue() in 14 Dateien durch aussagekräftige Assertions ersetzt.
  • ContactLinksTest konsolidiert: Duplikate aus tests/Feature/Watchers/ in tests/Feature/Livewire/Watchers/ContactLinksTest.php zusammengeführt (29 Tests).
  • Broadcast-Crash gefixt: routes/channels.php Early-Return-Guard verhindert Boot-Crash in Test/CI ohne .env.
  • Alpine.js @this-Syntax gefixt: action-message.blade.php von Livewire v2 (@this) auf v3 ($wire) migriert.

SQLite vs. PostgreSQL Inkompatibilität (Hauptursache)

Test-DateiFehlerUrsache
WatcherSearchTestILIKE syntax errorPostgreSQL-spezifisch: ILIKE existiert in SQLite nicht
QueueMetricsSnapshotTest (3 Tests)QueryExceptionPostgreSQL-spezifische Queries (::bigint, jsonb @>)
GlobalLeaderboardTest (2 Tests)QueryExceptionPostgreSQL-spezifische Queries
DashboardRollupTest::rollup generatesQueryExceptionPostgreSQL-spezifische Queries
AdminSocialProfilesLabelTestQueryExceptionPostgreSQL-spezifische Queries
UserManagementTest (4 Tests)QueryExceptionPostgreSQL-spezifische Queries

Lösung: Tests entweder mit PostgreSQL-Test-DB laufen lassen oder betroffene Queries SQLite-kompatibel machen (z.B. ILIKELIKE Wrapper).


Logik-/Datumformat-Probleme

Test-DateiFehlerUrsache
DailySyncRunTest'2025-01-03 00:00:00' != '2025-01-03'SQLite gibt Datetime-String zurück statt Date-String
DailySyncRunsTest (5 Tests)Diverse Assertion-FehlerSync-Logik erwartet PostgreSQL-Datentypen
DashboardRollupRangeTest (3 Tests)Assertion-FehlerRollup-Ranges PostgreSQL-abhängig
DashboardRollupTest::dashboard readsAssertion-FehlerRollup-Daten PostgreSQL-abhängig

Unique-Constraint/Race-Conditions

Test-DateiFehlerUrsache
EnsureSocialProfileFromUrlImageTestUniqueConstraintViolationDoppelte Profil-Erstellung in Test-Setup
InstagramDailyScrapeProcessorUniqueConstraintViolationDoppelte Metric-Einträge in Test-Setup

Sonstige

Test-DateiFehlerUrsache
CreateInstagramCollectorJobTest (4 Tests)actual size 2 != 1Collector-Job-Filterung in Test-Isolation
LogQueueIndexTest::trimsAssertion-FehlerLog-Trimming Edge Case
CheckDailyScrapeHealthTestAssertion-FehlerHealth-Check Logik
SystemHealthServiceTest (2 Tests)Assertion-FehlerPostgreSQL-spezifische Health-Queries
InstagramWatcherImportProcessorTestAssertion-FehlerImport-Processor Logik
PublicExplorerTest (10 Tests)ViewExceptionLivewire-Component braucht PostgreSQL-spezifische Queries
SeoMetaTagsTest::CollectionPage JSON-LDAssertion-FehlerSEO-Meta-Rendering

Rector-spezifische Erkenntnisse (behoben)

  1. tests/Pest.php Superglobal-Konvertierung: Rector konvertierte $_ENV['X'] = 'y' fälschlich zu Env::get('X') = 'y'. Lösung: tests/Pest.php in Rector-Skip-Liste aufgenommen.
  2. #[Scope] in statischem Kontext: static::published() in einer statischen Methode schlägt fehl. Lösung: static::query()->published() verwenden.
  3. Dead-Code-Entfernung bei Reflection-Tests: Rector entfernte Parameter, aber Test-Helper rief Methode noch mit altem Parameter via Reflection auf. Lösung: Test-Helper aktualisiert.