MCPcopy
hub / github.com/triggerdotdev/trigger.dev / createJobTester

Function createJobTester

packages/testing/src/index.ts:110–213  ·  view source on GitHub ↗
(vi: typeof vitestVi)

Source from the content-addressed store, hash-verified

108
109export const createJobTester =
110 (vi: typeof vitestVi) =>
111 async <
112 TTrigger extends Trigger<EventSpecification<any>>,
113 TIntegrations extends Record<string, TriggerIntegration> = {},
114 TTasks extends Record<string, any> = {},
115 >(
116 job: Job<TTrigger, TIntegrations>,
117 opts: {
118 payload?: TriggerEventType<TTrigger>;
119 tasks?: TTasks;
120 } = {}
121 ): Promise<
122 {
123 output: any;
124 status: string;
125 tasks: Record<keyof TTasks, Mock> & Record<string, Mock>;
126 } & Record<string, any>
127 > => {
128 const mockSendEvent = (client: TriggerClient) =>
129 vi
130 .spyOn(client, "sendEvent")
131 .mockImplementation(
132 async (unparsedEvent: SendEvent, unparsedOptions: SendEventOptions = {}) => {
133 const body = SendEventBodySchema.parse({
134 event: unparsedEvent,
135 options: unparsedOptions,
136 });
137 const { event, options } = body;
138
139 const timestamp = new Date();
140 const deliverAt =
141 options?.deliverAt ||
142 (options?.deliverAfter
143 ? new Date(Date.now() + options.deliverAfter * 1000)
144 : undefined);
145
146 const eventLog = {
147 id: event.id,
148 name: event.name,
149 payload: event.payload ?? {},
150 context: event.context,
151 timestamp,
152 deliverAt,
153 deliveredAt: !deliverAt ? timestamp : undefined,
154 cancelledAt: undefined,
155 };
156
157 return eventLog;
158 }
159 );
160
161 const { client, trigger } = job;
162
163 mockSendEvent(client!);
164 const eventLog = await client!.sendEvent({
165 name: typeof trigger.event.name === "string" ? trigger.event.name : trigger.event.name[0],
166 payload: opts.payload,
167 });

Callers 2

example.test.tsFile · 0.90

Calls 7

mockSendEventFunction · 0.85
buildRequestFunction · 0.85
buildRequestBodyFunction · 0.85
apiKeyMethod · 0.80
runFunction · 0.50
sendEventMethod · 0.45
handleRequestMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…