<?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']);
});
