Files
duckbrain-toolbox/packages/test/tests/TestCase.php
T
2026-10-05 15:08:39 -03:00

36 lines
1.1 KiB
PHP

<?php
namespace Tests;
use Commands\Migration;
use Override;
use PHPUnit\Framework\TestCase as PHPunitTestCase;
abstract class TestCase extends PHPunitTestCase
{
private static Migration $db_migration;
#[Override]
public static function setUpBeforeClass(): void
{
// Garantiza que ningún test corra contra la base de datos real.
self::assertSame('sqlite', DB_TYPE, 'Tests must run on SQLite.');
self::assertSame(':memory:', DB_NAME, 'Tests must run on an in-memory database.');
static::$db_migration = new Migration(verbose: false);
static::$db_migration->ensureDatabaseExists();
// fresh() limpia el historial de migraciones y vuelve a aplicarlas: en
// modo aislado, el proceso padre también ejecuta este hook y deja el
// archivo de control poblado, por lo que migrate() se saltaría el
// esquema sobre la base :memory: vacía del hijo.
static::$db_migration->fresh();
}
#[Override]
public static function tearDownAfterClass(): void
{
// Ejecutar el rollback de las migraciones
static::$db_migration->rollback();
}
}