27 lines
1.1 KiB
PHP
27 lines
1.1 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
use Illuminate\Support\Facades\DB;
|
||
|
|
use Illuminate\Support\Facades\Schema;
|
||
|
|
|
||
|
|
it('таблица заданий роботу существует с нужными столбцами', function () {
|
||
|
|
expect(Schema::hasTable('client_tg_robot_jobs'))->toBeTrue();
|
||
|
|
|
||
|
|
foreach ([
|
||
|
|
'id', 'tenant_id', 'campaign_id', 'mode', 'payload', 'status',
|
||
|
|
'attempts', 'result', 'failure_reason', 'taken_at', 'finished_at',
|
||
|
|
] as $column) {
|
||
|
|
expect(Schema::hasColumn('client_tg_robot_jobs', $column))->toBeTrue("нет столбца {$column}");
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
it('на таблице включена построчная защита с политикой по тенанту', function () {
|
||
|
|
$rls = DB::selectOne("SELECT relrowsecurity, relforcerowsecurity FROM pg_class WHERE relname = 'client_tg_robot_jobs'");
|
||
|
|
expect($rls->relrowsecurity)->toBeTrue();
|
||
|
|
expect($rls->relforcerowsecurity)->toBeTrue();
|
||
|
|
|
||
|
|
$policy = DB::selectOne("SELECT polname FROM pg_policy p JOIN pg_class c ON c.oid = p.polrelid WHERE c.relname = 'client_tg_robot_jobs'");
|
||
|
|
expect($policy->polname)->toBe('tenant_isolation');
|
||
|
|
});
|