1
0
Files
breadcrumb-the-shire/tests/Service/Audit/NullAuditMetadataEnricherTest.php
fs 7a222f0b1f fix(audit): harden module isolation and fix post-extraction drift
Fix 5 broken FQCN references (runtime errors) where core pages referenced
non-existent MintyPHP\Service\Audit\AuditMetadataEnricher and SystemAuditService.
Add AuditMetadataEnricherInterface with NullAuditMetadataEnricher fallback so
deactivating the audit module no longer crashes core edit pages.

Move audit search resources from core Search*Provider files into the module
via a new AuditSearchResourceProvider implementing the existing
SearchResourceProvider contract. Add module-specific purge permissions
(audit.api.purge, audit.imports.purge) replacing core ABILITY_ADMIN_SETTINGS_UPDATE.

Also fixes: session key prefix convention, hardcoded English string, $_SERVER
superglobal fallback, and manifest schema drift (i18n_path, group in ui_slots).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 10:03:27 +01:00

33 lines
1.0 KiB
PHP

<?php
namespace MintyPHP\Tests\Service\Audit;
use MintyPHP\Service\Audit\NullAuditMetadataEnricher;
use PHPUnit\Framework\TestCase;
class NullAuditMetadataEnricherTest extends TestCase
{
public function testEnrichDoesNotModifyEntity(): void
{
$enricher = new NullAuditMetadataEnricher();
$entity = ['created_by' => 10, 'modified_by' => 20, 'name' => 'Test'];
$enricher->enrich($entity);
$this->assertSame(['created_by' => 10, 'modified_by' => 20, 'name' => 'Test'], $entity);
$this->assertArrayNotHasKey('created_by_label', $entity);
$this->assertArrayNotHasKey('modified_by_label', $entity);
}
public function testEnrichWithCustomFieldsDoesNotModifyEntity(): void
{
$enricher = new NullAuditMetadataEnricher();
$entity = ['status_changed_by' => 5];
$enricher->enrich($entity, ['status_changed_by']);
$this->assertSame(['status_changed_by' => 5], $entity);
$this->assertArrayNotHasKey('status_changed_by_label', $entity);
}
}