29 lines
1.0 KiB
PHP
29 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature;
|
|
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Support\Facades\Artisan;
|
|
use Illuminate\Support\Facades\Schema;
|
|
use Tests\TestCase;
|
|
|
|
class DocumentLibrarySchemaCompatibilityTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
public function test_schema_check_accepts_the_complete_library_and_security_schema(): void
|
|
{
|
|
$this->assertSame(0, Artisan::call('portal:check-document-library-schema'));
|
|
$this->assertStringContainsString('Esquema da biblioteca compatível', Artisan::output());
|
|
}
|
|
|
|
public function test_schema_check_rejects_missing_security_columns_without_weakening_queries(): void
|
|
{
|
|
Schema::table('portal_resources', fn ($table) => $table->dropColumn('rights_status'));
|
|
|
|
$this->assertSame(1, Artisan::call('portal:check-document-library-schema'));
|
|
$this->assertStringContainsString('portal_resources.rights_status', Artisan::output());
|
|
$this->assertStringNotContainsString('documents.malware_scan_status', Artisan::output());
|
|
}
|
|
}
|