Files
opensourcepos/app/Database/Seeds/TestDatabaseBootstrapSeeder.php
objec 86c62893cc UnitTest Seeder and tests
- Modified generate_message in Db_log.php to be defensive.
- Created a seeder to automatically prepare the test database.
- Modified the Unit Test setup to properly seed the test database.
- Wrote a unit test to test deleting an attribute from an item through the CSV.

Signed-off-by: objec <objecttothis@gmail.com>
2026-03-17 01:16:03 +04:00

45 lines
1.3 KiB
PHP

<?php
namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder;
use Config\Database;
class TestDatabaseBootstrapSeeder extends Seeder
{
public function run(): void
{
$config = config('Database');
$group = $config->tests;
$dbName = $group['database'];
$serverConn = Database::connect([
'hostname' => $group['hostname'],
'username' => $group['username'],
'password' => $group['password'],
'DBDriver' => $group['DBDriver'],
'database' => null,
'charset' => $group['charset'] ?? 'utf8mb4',
'DBCollat' => $group['DBCollat'] ?? 'utf8mb4_general_ci',
], false);
$serverConn->query("DROP DATABASE IF EXISTS `{$dbName}`");
$serverConn->query("CREATE DATABASE IF NOT EXISTS `{$dbName}`");
$db = Database::connect($group, false);
$sqlFile = APPPATH . 'Database/database.sql';
if (! file_exists($sqlFile)) {
throw new \RuntimeException("SQL file not found: {$sqlFile}");
}
$sql = file_get_contents($sqlFile);
foreach (explode(";", $sql) as $statement) {
$trim = trim($statement);
if ($trim !== '') {
$db->query($trim);
}
}
}
}