43 lines
1.7 KiB
PHP
43 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Tests;
|
|
|
|
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
|
|
|
abstract class TestCase extends BaseTestCase
|
|
{
|
|
protected function setUp(): void
|
|
{
|
|
if (! $this->app) {
|
|
$this->refreshApplication();
|
|
}
|
|
|
|
$currentDb = config('database.connections.mysql.database');
|
|
$currentEnv = env('APP_ENV');
|
|
|
|
// SZIGORÚ ELLENŐRZÉS: A 'd2d' adatbázist SOHA nem szabad teszthez használni!
|
|
// Akkor is védünk, ha a config cache-elve van vagy az APP_ENV nem 'testing'.
|
|
if (strtolower($currentDb) === 'd2d') {
|
|
echo "\n\n!!! KRITIKUS BIZTONSÁGI HIBA !!!\n";
|
|
echo "A tesztek az ÉLŐ (d2d) adatbázishoz kapcsolódnak!\n";
|
|
echo "Ez az adatbázis törléséhez (RefreshDatabase) vezetne.\n";
|
|
echo "A folyamat azonnal leállítva a biztonság érdekében.\n";
|
|
echo "Megoldás: Futtasd a 'php artisan config:clear' parancsot és ellenőrizd a .env.testing fájlt!\n\n";
|
|
exit(1);
|
|
}
|
|
|
|
// Kényszerítsük a teszt adatbázist, ha testing környezetben vagyunk és nem d2d
|
|
if ($currentEnv === 'testing' && strtolower($currentDb) !== 'd2dtest') {
|
|
config(['database.connections.mysql.database' => 'd2dTest']);
|
|
$currentDb = 'd2dTest';
|
|
}
|
|
|
|
// Általános ellenőrzés, hogy a teszt adatbázis legyen használva
|
|
if (strtolower($currentDb) !== 'd2dtest' && $currentEnv === 'testing') {
|
|
throw new \Exception('HIBA: A teszteknek a d2dTest adatbázison kellene futniuk. Aktuális konfiguráció: ' . $currentDb . '. Kérlek futtasd a "php artisan config:clear" parancsot!');
|
|
}
|
|
|
|
parent::setUp();
|
|
}
|
|
}
|