diff --git a/.changeset/spicy-swans-suffer.md b/.changeset/spicy-swans-suffer.md new file mode 100644 index 000000000..f9a55daf3 --- /dev/null +++ b/.changeset/spicy-swans-suffer.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/sdk": patch +--- + +Added isTest to TriggerContext diff --git a/apps/docs/reference/trigger.mdx b/apps/docs/reference/trigger.mdx index 9c8fd5ec9..c8bd6a9b4 100644 --- a/apps/docs/reference/trigger.mdx +++ b/apps/docs/reference/trigger.mdx @@ -87,6 +87,10 @@ const trigger = new Trigger({ for more info. + + Whether or not this trigger is being run as a test. + + A function that can be used to send an event to trigger.dev. See the [Sending Events](/functions/send-event) page for more info. diff --git a/apps/webapp/app/services/messageBroker.server.ts b/apps/webapp/app/services/messageBroker.server.ts index 189a5ff14..2a99648a3 100644 --- a/apps/webapp/app/services/messageBroker.server.ts +++ b/apps/webapp/app/services/messageBroker.server.ts @@ -664,6 +664,7 @@ function createTaskQueue() { "x-env": run.environment.slug, "x-workflow-run-id": run.id, "x-ttl": run.workflow.triggerTtlInSeconds, + "x-is-test": run.isTest ? "true" : "false", }, { eventTimestamp: run.event.timestamp.getTime(), diff --git a/apps/wss/src/runController.ts b/apps/wss/src/runController.ts index 6070cd8bb..6a68016c7 100644 --- a/apps/wss/src/runController.ts +++ b/apps/wss/src/runController.ts @@ -24,6 +24,7 @@ export type WorkflowRunControllerOptions = { environment: string; apiKey: string; organizationId: string; + isTest: boolean; }; }; @@ -37,6 +38,7 @@ export class WorkflowRunController { environment: string; apiKey: string; organizationId: string; + isTest: boolean; }; #logger: Logger; diff --git a/apps/wss/src/server.ts b/apps/wss/src/server.ts index 32171bf28..5b72cf4fa 100644 --- a/apps/wss/src/server.ts +++ b/apps/wss/src/server.ts @@ -420,6 +420,10 @@ export class TriggerServer { organizationId: properties["x-org-id"], environment: properties["x-env"], apiKey: properties["x-api-key"], + isTest: + typeof properties["x-is-test"] === "string" + ? properties["x-is-test"] === "true" + : false, }, }); diff --git a/examples/fetch-playground/src/index.ts b/examples/fetch-playground/src/index.ts index 9a2f2789f..fe37c774b 100644 --- a/examples/fetch-playground/src/index.ts +++ b/examples/fetch-playground/src/index.ts @@ -39,6 +39,10 @@ new Trigger({ wallTime: new Date(), }); + if (ctx.isTest) { + await ctx.logger.warn("This is only a test"); + } + const response = await ctx.fetch("do-fetch", `${event.url}${event.path}`, { method: event.method, responseSchema: z.any(), diff --git a/packages/internal-bridge/src/schemas/host.ts b/packages/internal-bridge/src/schemas/host.ts index bec310e2d..2209197e7 100644 --- a/packages/internal-bridge/src/schemas/host.ts +++ b/packages/internal-bridge/src/schemas/host.ts @@ -14,6 +14,7 @@ export const HostRPCSchema = { workflowId: z.string(), organizationId: z.string(), apiKey: z.string(), + isTest: z.boolean().default(false), }), }), response: z.boolean(), diff --git a/packages/internal-platform/src/messages/catalogs/triggers.ts b/packages/internal-platform/src/messages/catalogs/triggers.ts index 057308d93..53a6d02fe 100644 --- a/packages/internal-platform/src/messages/catalogs/triggers.ts +++ b/packages/internal-platform/src/messages/catalogs/triggers.ts @@ -7,6 +7,7 @@ const Catalog = { data: TriggerWorkflowMessageSchema, properties: WorkflowRunEventPropertiesSchema.extend({ "x-ttl": z.coerce.number().optional(), + "x-is-test": z.string().default("false"), }), }, }; diff --git a/packages/trigger-sdk/src/client.ts b/packages/trigger-sdk/src/client.ts index ae181af67..de8b6bad7 100644 --- a/packages/trigger-sdk/src/client.ts +++ b/packages/trigger-sdk/src/client.ts @@ -357,6 +357,7 @@ export class TriggerClient { environment: data.meta.environment, apiKey: data.meta.apiKey, organizationId: data.meta.organizationId, + isTest: data.meta.isTest, logger: new ContextLogger(async (level, message, properties) => { await serverRPC.send("SEND_LOG", { runId: data.id, diff --git a/packages/trigger-sdk/src/types.ts b/packages/trigger-sdk/src/types.ts index 075d94e71..a99abe055 100644 --- a/packages/trigger-sdk/src/types.ts +++ b/packages/trigger-sdk/src/types.ts @@ -62,6 +62,7 @@ export interface TriggerContext { apiKey: string; organizationId: string; logger: TriggerLogger; + isTest: boolean; sendEvent(key: string, event: TriggerCustomEvent): Promise; waitFor(key: string, options: WaitForOptions): Promise; waitUntil(key: string, date: Date): Promise;