tests: gemeinsamer Testhelfer, DB_URL-Guard vor RefreshDatabase, Larastan voller Scope ohne Meldung (Umsetzungsaudit 29.09.: Q-01, Q-02; 02.10.: O02)

- makeCustomerForShowPhase8a() nach tests/Pest.php — die Suite läuft damit
  auch parallel (--parallel) und dateiweise grün
- phpunit.xml leert DB_URL, der Guard in TestCase::setUpTraits() bricht bei
  gesetzter url ab, bevor RefreshDatabase eine Verbindung öffnet
- HasUniqueSlug ohne widersprüchliche @var-Annotation

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-10-02 13:09:00 +00:00
parent 98c465b691
commit dfb0513e73
6 changed files with 74 additions and 34 deletions

View file

@ -44,6 +44,16 @@ abstract class TestCase extends BaseTestCase
$default = (string) DB::getDefaultConnection();
$connection = (array) config('database.connections.'.$default, []);
// Eine gesetzte `url` überschreibt Treiber und Datenbank erst beim
// Verbindungsaufbau — dann wären die geprüften Rohwerte wertlos
// (Umsetzungsaudit 02.10.2026, O02).
if (! empty($connection['url'])) {
throw new RuntimeException(sprintf(
'Tests laufen mit DB_URL-Override auf „%s“ — die Verbindung würde nicht SQLite :memory: sein. DB_URL für Tests leeren.',
$default,
));
}
if ($default !== 'sqlite' || ($connection['driver'] ?? null) !== 'sqlite' || ($connection['database'] ?? null) !== ':memory:') {
throw new RuntimeException(sprintf(
'Tests laufen gegen „%s“ (%s) statt SQLite :memory: — vermutlich liegt ein Config-Cache. `php artisan config:clear` und erneut starten.',