Skip to content

Commit a4bab4c

Browse files
Add type-level coverage for onError callback payload
Co-authored-by: Eric Allam <eric@trigger.dev>
1 parent 6ead0d0 commit a4bab4c

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

packages/ai/src/chatTransport.types.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
createTriggerChatTransport,
55
TriggerChatTransport,
66
TriggerChatTransportOptions,
7+
type TriggerChatOnError,
78
type TriggerChatTransportError,
89
type TriggerChatHeadersInput,
910
type TriggerChatReconnectOptions,
@@ -97,6 +98,23 @@ it("accepts async payload mappers and trigger option resolvers", function () {
9798
expectTypeOf(options).toBeObject();
9899
});
99100

101+
it("exposes strongly typed onError callback payloads", function () {
102+
const onError = createTypedOnErrorCallback();
103+
104+
expectTypeOf(onError).toBeFunction();
105+
});
106+
107+
function createTypedOnErrorCallback(): TriggerChatOnError {
108+
async function onError(error: TriggerChatTransportError) {
109+
expectTypeOf(error.phase).toEqualTypeOf<"onTriggeredRun" | "consumeTrackingStream" | "reconnect">();
110+
expectTypeOf(error.chatId).toEqualTypeOf<string>();
111+
expectTypeOf(error.runId).toEqualTypeOf<string>();
112+
expectTypeOf(error.error).toEqualTypeOf<Error>();
113+
}
114+
115+
return onError;
116+
}
117+
100118
it("infers custom payload output from mapper in factory helper", function () {
101119
const transport = createTriggerChatTransport({
102120
task: "ai-chat",

0 commit comments

Comments
 (0)