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:
parent
80536ab998
commit
3dbc3fa673
6 changed files with 74 additions and 34 deletions
|
|
@ -33,3 +33,24 @@ test('the database guard rejects anything but sqlite in memory', function () {
|
|||
config()->set('database.default', 'sqlite');
|
||||
}
|
||||
});
|
||||
|
||||
test('the database guard rejects a url override on the sqlite connection', function () {
|
||||
/** @var TestCase $this */
|
||||
$guard = fn () => $this->assertTestDatabaseIsInMemorySqlite();
|
||||
|
||||
// Laravel löst `url` erst beim Verbindungsaufbau auf und überschreibt
|
||||
// damit Treiber und Datenbank — die rohen sqlite/:memory:-Werte allein
|
||||
// beweisen nichts (Umsetzungsaudit 02.10.2026, O02). Nur Config, keine
|
||||
// Verbindung: der Guard muss vorher abbrechen.
|
||||
try {
|
||||
config()->set('database.connections.sqlite.url', 'mysql://root:secret@127.0.0.1:3306/pressekonto');
|
||||
|
||||
expect($guard)->toThrow(RuntimeException::class, 'DB_URL');
|
||||
} finally {
|
||||
config()->set('database.connections.sqlite.url', null);
|
||||
}
|
||||
});
|
||||
|
||||
test('phpunit neutralises DB_URL for the whole run', function () {
|
||||
expect(config('database.connections.sqlite.url'))->toBeEmpty();
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue