Skip to content

Commit fc12e5d

Browse files
committed
Enhance source validation to accept digital-letters domain; bump version to 1.1.3
1 parent ec935a5 commit fc12e5d

File tree

4 files changed

+59
-5
lines changed

4 files changed

+59
-5
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/events/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@
4040
"test:unit": "jest",
4141
"prepare": "npm run build"
4242
},
43-
"version": "1.1.2"
43+
"version": "1.1.3"
4444
}

packages/events/src/events/__tests__/event-envelope.test.ts

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,51 @@ describe("EventEnvelope schema validation", () => {
216216
});
217217
});
218218

219-
describe("edge cases", () => {
219+
describe("source validation", () => {
220+
it("should accept source with letter-rendering plane", () => {
221+
const envelope = {
222+
...baseValidEnvelope,
223+
source: "/data-plane/letter-rendering/ordering",
224+
};
225+
226+
const result = $Envelope.safeParse(envelope);
227+
expect(result.error).toBeUndefined();
228+
expect(result.success).toBe(true);
229+
});
230+
231+
it("should accept source with digital-letters domain", () => {
232+
const envelope = {
233+
...baseValidEnvelope,
234+
source: "/data-plane/digital-letters/ordering",
235+
};
236+
237+
const result = $Envelope.safeParse(envelope);
238+
expect(result.error).toBeUndefined();
239+
expect(result.success).toBe(true);
240+
});
241+
242+
it("should accept source with digital-letters domain and additional path", () => {
243+
const envelope = {
244+
...baseValidEnvelope,
245+
source: "/data-plane/digital-letters/ordering/sub-path",
246+
};
247+
248+
const result = $Envelope.safeParse(envelope);
249+
expect(result.error).toBeUndefined();
250+
expect(result.success).toBe(true);
251+
});
252+
253+
it("should accept source with letter-rendering plane and additional path", () => {
254+
const envelope = {
255+
...baseValidEnvelope,
256+
source: "/data-plane/letter-rendering/ordering/sub-path/more",
257+
};
258+
259+
const result = $Envelope.safeParse(envelope);
260+
expect(result.error).toBeUndefined();
261+
expect(result.success).toBe(true);
262+
});
263+
220264
it("should reject invalid source pattern", () => {
221265
const envelope = {
222266
...baseValidEnvelope,
@@ -226,6 +270,16 @@ describe("EventEnvelope schema validation", () => {
226270
const result = $Envelope.safeParse(envelope);
227271
expect(result.success).toBe(false);
228272
});
273+
274+
it("should reject source without data-plane prefix", () => {
275+
const envelope = {
276+
...baseValidEnvelope,
277+
source: "/digital-letters/ordering",
278+
};
279+
280+
const result = $Envelope.safeParse(envelope);
281+
expect(result.success).toBe(false);
282+
});
229283
});
230284

231285
describe("subject prefix validation", () => {

packages/events/src/events/event-envelope.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ export function EventEnvelope<TData extends z.ZodTypeAny>(
6464

6565
source: z
6666
.string()
67-
.regex(/^\/data-plane\/letter-rendering(?:\/.*)?$/)
67+
.regex(/^\/data-plane\/(letter-rendering|digital-letters)(?:\/.*)?$/)
6868
.meta({
6969
title: "Event Source",
7070
description:
71-
"Logical event producer path within the letter-rendering domain",
71+
"Logical event producer path within the letter-rendering or digital-letters domains",
7272
}),
7373

7474
subject: z

0 commit comments

Comments
 (0)