d2d.emegrendeles.hu/tests/TestCase.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();
}
}