Skip to content

Commit bc43d82

Browse files
authored
(EAI-1061) Better error handling & logging for segment events (#762)
1 parent cb01231 commit bc43d82

File tree

4 files changed

+204
-160
lines changed

4 files changed

+204
-160
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/chatbot-server-mongodb-public/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"pm2": "^5.3.0",
4141
"slack-block-builder": "^2.8.0",
4242
"slackify-markdown": "^4.4.0",
43-
"zod": "^3.23.8",
43+
"zod": "^3.25.48",
4444
"zod-to-json-schema": "^3.23.2"
4545
},
4646
"devDependencies": {

packages/chatbot-server-mongodb-public/src/tracing/segment.test.ts

Lines changed: 72 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -113,22 +113,32 @@ describe("Segment Tracking", () => {
113113
writeKey: "test-key",
114114
});
115115

116-
await trackUserSentMessage({
117-
...commonParams,
118-
tags: ["tag1"],
119-
});
116+
await expect(
117+
trackUserSentMessage({
118+
...commonParams,
119+
tags: ["tag1"],
120+
})
121+
).rejects.toThrow(
122+
/Unable to create track event params for trackUserSentMessage/
123+
);
124+
125+
expect(mockAnalytics.track).not.toHaveBeenCalled();
120126
});
121127

122128
it("should not track when origin URL is invalid", async () => {
123129
const trackUserSentMessage = makeTrackUserSentMessage({
124130
writeKey: "test-key",
125131
});
126132

127-
await trackUserSentMessage({
128-
...commonParams,
129-
origin: "invalid-url",
130-
tags: ["tag1"],
131-
});
133+
await expect(
134+
trackUserSentMessage({
135+
...commonParams,
136+
origin: "invalid-url",
137+
tags: ["tag1"],
138+
})
139+
).rejects.toThrow(
140+
/Unable to create track event params for trackUserSentMessage/
141+
);
132142

133143
expect(mockAnalytics.track).not.toHaveBeenCalled();
134144
});
@@ -280,10 +290,14 @@ describe("Segment Tracking", () => {
280290
writeKey: "test-key",
281291
});
282292

283-
await trackAssistantResponded({
284-
...commonParams,
285-
isVerifiedAnswer: false,
286-
});
293+
await expect(
294+
trackAssistantResponded({
295+
...commonParams,
296+
isVerifiedAnswer: false,
297+
})
298+
).rejects.toThrow(
299+
/Unable to create track event params for trackAssistantResponded/
300+
);
287301

288302
expect(mockAnalytics.track).not.toHaveBeenCalled();
289303
});
@@ -293,11 +307,15 @@ describe("Segment Tracking", () => {
293307
writeKey: "test-key",
294308
});
295309

296-
await trackAssistantResponded({
297-
...commonParams,
298-
origin: "invalid-url",
299-
isVerifiedAnswer: true,
300-
});
310+
await expect(
311+
trackAssistantResponded({
312+
...commonParams,
313+
origin: "invalid-url",
314+
isVerifiedAnswer: true,
315+
})
316+
).rejects.toThrow(
317+
/Unable to create track event params for trackAssistantResponded/
318+
);
301319

302320
expect(mockAnalytics.track).not.toHaveBeenCalled();
303321
});
@@ -360,19 +378,6 @@ describe("Segment Tracking", () => {
360378
});
361379
});
362380

363-
// it("should not track when userId or anonymousId is missing", async () => {
364-
// const trackUserRatedMessage = makeTrackUserRatedMessage({
365-
// writeKey: "test-key",
366-
// });
367-
368-
// await trackUserRatedMessage({
369-
// ...commonParams,
370-
// rating: true,
371-
// });
372-
373-
// expect(mockAnalytics.track).not.toHaveBeenCalled();
374-
// });
375-
376381
it("should track assistant response with both user IDs", async () => {
377382
const trackUserRatedMessage = makeTrackUserRatedMessage({
378383
writeKey: "test-key",
@@ -460,10 +465,14 @@ describe("Segment Tracking", () => {
460465
writeKey: "test-key",
461466
});
462467

463-
await trackUserRatedMessage({
464-
...commonParams,
465-
rating: true,
466-
});
468+
await expect(
469+
trackUserRatedMessage({
470+
...commonParams,
471+
rating: true,
472+
})
473+
).rejects.toThrow(
474+
/Unable to create track event params for trackUserRatedMessage/
475+
);
467476

468477
expect(mockAnalytics.track).not.toHaveBeenCalled();
469478
});
@@ -473,11 +482,15 @@ describe("Segment Tracking", () => {
473482
writeKey: "test-key",
474483
});
475484

476-
await trackUserRatedMessage({
477-
...commonParams,
478-
origin: "invalid-url",
479-
rating: true,
480-
});
485+
await expect(
486+
trackUserRatedMessage({
487+
...commonParams,
488+
origin: "invalid-url",
489+
rating: true,
490+
})
491+
).rejects.toThrow(
492+
/Unable to create track event params for trackUserRatedMessage/
493+
);
481494

482495
expect(mockAnalytics.track).not.toHaveBeenCalled();
483496
});
@@ -544,21 +557,6 @@ describe("Segment Tracking", () => {
544557
});
545558
});
546559

547-
// it("should not track when userId or anonymousId is missing", async () => {
548-
// const trackUserCommentedMessage = makeTrackUserCommentedMessage({
549-
// writeKey: "test-key",
550-
// });
551-
552-
// await trackUserCommentedMessage({
553-
// ...commonParams,
554-
// userId: "",
555-
// comment: "Test comment",
556-
// rating: true,
557-
// });
558-
559-
// expect(mockAnalytics.track).not.toHaveBeenCalled();
560-
// });
561-
562560
it("should track user comment with both user IDs", async () => {
563561
const trackUserCommentedMessage = makeTrackUserCommentedMessage({
564562
writeKey: "test-key",
@@ -652,11 +650,15 @@ describe("Segment Tracking", () => {
652650
writeKey: "test-key",
653651
});
654652

655-
await trackUserCommentedMessage({
656-
...commonParams,
657-
comment: "This was very helpful!",
658-
rating: true,
659-
});
653+
await expect(
654+
trackUserCommentedMessage({
655+
...commonParams,
656+
comment: "This was very helpful!",
657+
rating: true,
658+
})
659+
).rejects.toThrow(
660+
/Unable to create track event params for trackUserCommentedMessage/
661+
);
660662

661663
expect(mockAnalytics.track).not.toHaveBeenCalled();
662664
});
@@ -666,13 +668,16 @@ describe("Segment Tracking", () => {
666668
writeKey: "test-key",
667669
});
668670

669-
await trackUserCommentedMessage({
670-
...commonParams,
671-
origin: "invalid-url",
672-
comment: "Test comment",
673-
rating: true,
674-
});
675-
671+
await expect(
672+
trackUserCommentedMessage({
673+
...commonParams,
674+
origin: "invalid-url",
675+
comment: "Test comment",
676+
rating: true,
677+
})
678+
).rejects.toThrow(
679+
/Unable to create track event params for trackUserCommentedMessage/
680+
);
676681
expect(mockAnalytics.track).not.toHaveBeenCalled();
677682
});
678683
});

0 commit comments

Comments
 (0)