Files
portal/app/tests/Unit/Database/PgsqlAdminConnectionTest.php
T
Дмитрий d5c972c3f2 feat(админка): connection pgsql_admin под ролью crm_admin_user (Путь А)
AdminTenantsController/AdminBillingController ходят под default-подключением;
новое pgsql_admin (crm_admin_user, srv_bypass) даст им cross-tenant доступ
через middleware-переключатель (следующий коммит). На dev fallback на
DB_USERNAME. Test: pgsql_admin делит базовый pgsql-конфиг, роль из DB_ADMIN_*.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 06:37:42 +03:00

27 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
use Tests\TestCase;
uses(TestCase::class);
it('defines pgsql_admin connection sharing pgsql base with dev fallback to default role', function () {
/** @var array<string, mixed> $admin */
$admin = config('database.connections.pgsql_admin');
/** @var array<string, mixed> $base */
$base = config('database.connections.pgsql');
expect($admin)->toBeArray();
expect($admin['driver'])->toBe('pgsql');
// делит базовый pgsql-конфиг (host/database/sslmode), отличается только ролью
expect($admin['host'])->toBe($base['host']);
expect($admin['database'])->toBe($base['database']);
expect($admin['sslmode'])->toBe($base['sslmode']);
// на dev/test (DB_ADMIN_USERNAME/DB_ADMIN_PASSWORD не заданы) роль падает на
// default DB_USERNAME/DB_PASSWORD — поэтому совпадает с базовым pgsql.
// На prod env-ключи DB_ADMIN_* указывают на crm_admin_user (отличается).
expect($admin['username'])->toBe($base['username']);
expect($admin['password'])->toBe($base['password']);
});