|
12 | 12 | namespace Tests\OpenTelemetry; |
13 | 13 |
|
14 | 14 | use App\Audit\AuditLogOtlpStrategy; |
| 15 | +use App\Audit\AuditContext; |
| 16 | +use App\Jobs\EmitAuditLogJob; |
15 | 17 | use App\Models\Foundation\Main\IGroup; |
16 | 18 | use Tests\InsertMemberTestData; |
17 | 19 | use Tests\InsertSummitTestData; |
18 | 20 | use OpenTelemetry\API\Trace\StatusCode; |
19 | 21 | use OpenTelemetry\API\Trace\TracerInterface; |
| 22 | +use Illuminate\Support\Facades\Queue; |
20 | 23 |
|
21 | 24 | class AuditOtlpStrategyTest extends OpenTelemetryTestCase |
22 | 25 | { |
@@ -178,4 +181,44 @@ private function isOpenTelemetryEnabled(): bool |
178 | 181 | { |
179 | 182 | return getenv('OTEL_SERVICE_ENABLED') === 'true'; |
180 | 183 | } |
| 184 | + |
| 185 | + |
| 186 | + public function testAuditSummitEntityPopulatesSummitIdCorrectly(): void |
| 187 | + { |
| 188 | + $this->skipIfOpenTelemetryDisabled(); |
| 189 | + |
| 190 | + Queue::fake(); |
| 191 | + |
| 192 | + $ctx = new AuditContext(); |
| 193 | + $ctx->userId = self::$member->getId(); |
| 194 | + $ctx->userEmail = self::$member->getEmail(); |
| 195 | + $ctx->userFirstName = self::$member->getFirstName(); |
| 196 | + $ctx->userLastName = self::$member->getLastName(); |
| 197 | + $ctx->uiApp = 'test-app'; |
| 198 | + $ctx->uiFlow = 'test-flow'; |
| 199 | + $ctx->route = 'api.summits.update'; |
| 200 | + $ctx->httpMethod = 'PUT'; |
| 201 | + $ctx->clientIp = '127.0.0.1'; |
| 202 | + $ctx->userAgent = 'Test-Agent/1.0'; |
| 203 | + |
| 204 | + $simulatedChangeSet = [ |
| 205 | + 'name' => [self::$summit->getName(), self::$summit->getName() . ' [UPDATED]'] |
| 206 | + ]; |
| 207 | + |
| 208 | + $this->auditStrategy->audit( |
| 209 | + self::$summit, |
| 210 | + $simulatedChangeSet, |
| 211 | + AuditLogOtlpStrategy::EVENT_ENTITY_UPDATE, |
| 212 | + $ctx |
| 213 | + ); |
| 214 | + |
| 215 | + Queue::assertPushed(EmitAuditLogJob::class, function ($job) { |
| 216 | + $this->assertArrayHasKey('audit.summit_id', $job->auditData); |
| 217 | + $this->assertEquals((string)self::$summit->getId(), $job->auditData['audit.summit_id']); |
| 218 | + |
| 219 | + $this->assertEquals('Summit', $job->auditData['audit.entity']); |
| 220 | + |
| 221 | + return true; |
| 222 | + }); |
| 223 | + } |
181 | 224 | } |
0 commit comments