diff --git a/src/writeEvents.test.ts b/src/writeEvents.test.ts index 748291e..98f2f73 100644 --- a/src/writeEvents.test.ts +++ b/src/writeEvents.test.ts @@ -1,6 +1,7 @@ import assert from 'node:assert/strict'; import { afterEach, beforeEach, suite, test } from 'node:test'; import { Container } from './Container.js'; +import type { Event } from './Event.js'; import type { EventCandidate } from './EventCandidate.js'; import { getImageVersionFromDockerfile } from './getImageVersionFromDockerfile.js'; import { isEventQlQueryTrue } from './isEventQlQueryTrue.js'; @@ -76,6 +77,45 @@ suite('writeEvents', { timeout: 30_000 }, () => { assert.equal(secondWrittenEvent.data.value, 42); }); + test('writes the trace context of an event.', async (): Promise => { + const client = container.getClient(); + + const traceparent = '00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01'; + const tracestate = 'rojo=00f067aa0ba902b7'; + + const event: EventCandidate = { + source: 'https://www.eventsourcingdb.io', + subject: '/test', + type: 'io.eventsourcingdb.test', + data: { + value: 42, + }, + traceparent, + tracestate, + }; + + const writtenEvents = await client.writeEvents([event]); + + assert.equal(writtenEvents.length, 1); + const [writtenEvent] = writtenEvents; + assert.ok(writtenEvent); + assert.equal(writtenEvent.traceparent, traceparent); + assert.equal(writtenEvent.tracestate, tracestate); + + const eventsRead: Event[] = []; + for await (const eventRead of client.readEvents('/test', { + recursive: false, + })) { + eventsRead.push(eventRead); + } + + assert.equal(eventsRead.length, 1); + const [eventRead] = eventsRead; + assert.ok(eventRead); + assert.equal(eventRead.traceparent, traceparent); + assert.equal(eventRead.tracestate, tracestate); + }); + test('supports the isSubjectPristine precondition.', async (): Promise => { const client = container.getClient();