diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-11-30 00:19:28 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-30 00:19:28 +0000 |
| commit | a71b9505ea76596659c98eb6180a09a895399741 (patch) | |
| tree | ceabe80e36d36f594e92c7b3823147abe6e6b474 /packages/plugins/queue-restate/src/tests/queue.test.ts | |
| parent | b12c1c3a82941f2767ade8f497db56933415b94d (diff) | |
| download | karakeep-a71b9505ea76596659c98eb6180a09a895399741.tar.zst | |
fix: Add restate queued idempotency (#2169)
* fix: Add restate queued idempotency
* return on failed to acquire
Diffstat (limited to 'packages/plugins/queue-restate/src/tests/queue.test.ts')
| -rw-r--r-- | packages/plugins/queue-restate/src/tests/queue.test.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/packages/plugins/queue-restate/src/tests/queue.test.ts b/packages/plugins/queue-restate/src/tests/queue.test.ts index 28e32394..2085d57b 100644 --- a/packages/plugins/queue-restate/src/tests/queue.test.ts +++ b/packages/plugins/queue-restate/src/tests/queue.test.ts @@ -209,9 +209,30 @@ describe("Restate Queue Provider", () => { it("should use idempotency key", async () => { const idempotencyKey = `test-${Date.now()}`; + // hog the queue + await Promise.all([ + queue.enqueue( + { type: "semaphore-acquire" }, + { groupId: "init", priority: -10 }, + ), + queue.enqueue( + { type: "semaphore-acquire" }, + { groupId: "init", priority: -10 }, + ), + queue.enqueue( + { type: "semaphore-acquire" }, + { groupId: "init", priority: -10 }, + ), + ]); + await testState.baton.waitUntilCountWaiting(3); + await queue.enqueue({ type: "val", val: 200 }, { idempotencyKey }); await queue.enqueue({ type: "val", val: 200 }, { idempotencyKey }); + await new Promise((resolve) => setTimeout(resolve, 1000)); + + testState.baton.release(); + await waitUntilQueueEmpty(); expect(testState.results).toEqual([200]); |
