Add audit trail: AuditLog entity, AuditService, admin logs page
- AuditLog entity: action, entityType, entityId, data (JSON), performedBy, ipAddress - AuditService: logs actions with current user and IP - Audit on: order_created, order_paid, order_cancelled, order_refunded - Admin /admin/logs: paginated table with action badges, details, user, IP - Navigation link 'Logs' in admin header Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
50
tests/Entity/AuditLogTest.php
Normal file
50
tests/Entity/AuditLogTest.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace App\Tests\Entity;
|
||||
|
||||
use App\Entity\AuditLog;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class AuditLogTest extends TestCase
|
||||
{
|
||||
public function testConstructor(): void
|
||||
{
|
||||
$log = new AuditLog('order_created', 'BilletBuyer', 42);
|
||||
|
||||
self::assertNull($log->getId());
|
||||
self::assertSame('order_created', $log->getAction());
|
||||
self::assertSame('BilletBuyer', $log->getEntityType());
|
||||
self::assertSame(42, $log->getEntityId());
|
||||
self::assertSame([], $log->getData());
|
||||
self::assertNull($log->getPerformedBy());
|
||||
self::assertNull($log->getIpAddress());
|
||||
self::assertInstanceOf(\DateTimeImmutable::class, $log->getCreatedAt());
|
||||
}
|
||||
|
||||
public function testSetData(): void
|
||||
{
|
||||
$log = new AuditLog('test', 'Entity');
|
||||
$result = $log->setData(['key' => 'value']);
|
||||
|
||||
self::assertSame(['key' => 'value'], $log->getData());
|
||||
self::assertSame($log, $result);
|
||||
}
|
||||
|
||||
public function testSetPerformedBy(): void
|
||||
{
|
||||
$log = new AuditLog('test', 'Entity');
|
||||
$result = $log->setPerformedBy('admin@test.fr');
|
||||
|
||||
self::assertSame('admin@test.fr', $log->getPerformedBy());
|
||||
self::assertSame($log, $result);
|
||||
}
|
||||
|
||||
public function testSetIpAddress(): void
|
||||
{
|
||||
$log = new AuditLog('test', 'Entity');
|
||||
$result = $log->setIpAddress('127.0.0.1');
|
||||
|
||||
self::assertSame('127.0.0.1', $log->getIpAddress());
|
||||
self::assertSame($log, $result);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user