Skip to content

Commit e8b7bee

Browse files
committed
Test idempotency works on wait.for and wait.until
1 parent 76e49f7 commit e8b7bee

File tree

1 file changed

+14
-4
lines changed
  • references/hello-world/src/trigger

1 file changed

+14
-4
lines changed

references/hello-world/src/trigger/waits.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { logger, wait, task, retry } from "@trigger.dev/sdk/v3";
1+
import { logger, wait, task, retry, idempotencyKeys } from "@trigger.dev/sdk/v3";
22

33
type Token = {
44
status: "approved" | "pending" | "rejected";
@@ -62,11 +62,21 @@ export const completeWaitToken = task({
6262

6363
export const waitForDuration = task({
6464
id: "wait-duration",
65-
run: async ({ duration = 4 }: { duration?: number }) => {
66-
await wait.for({ seconds: duration });
65+
run: async ({
66+
duration = 4,
67+
idempotencyKey,
68+
idempotencyKeyTTL,
69+
}: {
70+
duration?: number;
71+
idempotencyKey?: string;
72+
idempotencyKeyTTL?: string;
73+
}) => {
74+
const idempotency = idempotencyKey ? await idempotencyKeys.create(idempotencyKey) : undefined;
75+
76+
await wait.for({ seconds: duration, idempotencyKey: idempotency, idempotencyKeyTTL });
6777
await wait.until({ date: new Date(Date.now() + duration * 1000) });
6878

69-
await retry.fetch("https://example.com/404/", { method: "GET" });
79+
await retry.fetch("https://example.com/404", { method: "GET" });
7080

7181
await retry.onThrow(
7282
async () => {

0 commit comments

Comments
 (0)