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()); } }