Files
e-ticket/tests/Entity/AuditLogTest.php
Serreau Jovann 66ac2379ec 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>
2026-03-22 20:48:10 +01:00

51 lines
1.5 KiB
PHP

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