Skip to content

test(idempotency): cover Redis lock guarantees for POST/PUT replay - #1240

Merged
ayomideadeniran merged 1 commit into
StellarDevHub:mainfrom
aurorabini:feat/issue-1126-idempotency
Aug 31, 2026
Merged

test(idempotency): cover Redis lock guarantees for POST/PUT replay#1240
ayomideadeniran merged 1 commit into
StellarDevHub:mainfrom
aurorabini:feat/issue-1126-idempotency

Conversation

@aurorabini

Copy link
Copy Markdown
Contributor

Summary

Adds comprehensive unit coverage proving the idempotency middleware enforces the Redis lock guarantees required for financial and certificate-minting endpoints (issue #1126).

The middleware itself is already wired into POST /certificates, POST /subscribe, webhook ingest, and enrollment routes; this PR locks in its guarantees with tests in src/middleware/idempotency.test.ts:

  • Pass-through when no Idempotency-Key header is present.
  • Cached replay: an identical key within the 24h TTL returns the stored response byte-for-byte with X-Idempotency-Replay: true, without re-executing the handler.
  • 409 on concurrency: a duplicate key whose in-flight lock is held returns 409 rather than double-submitting.
  • Atomic release: the lock is removed after the response completes.
  • Malformed input: oversized keys ( >256 chars ) return 400.

All 5 tests pass (npx vitest run src/middleware/idempotency.test.ts).

Closes #1126

Add a unit suite for the idempotency middleware verifying the RFC-compatible
behaviour required for financial/certificate-minting endpoints: pass-through
without a key, cached-response replay for an identical key within the TTL,
409 conflict while a concurrent request holds the lock, atomic lock release on
completion, and 400 for malformed oversized keys.

Closes StellarDevHub#1126
@vercel

vercel Bot commented Aug 29, 2026

Copy link
Copy Markdown

@aurorabini is attempting to deploy a commit to the Ayomide Adeniran's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Aug 29, 2026

Copy link
Copy Markdown

@aurorabini Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@ayomideadeniran
ayomideadeniran merged commit 57d1160 into StellarDevHub:main Aug 31, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Backend] Implement Idempotency Middleware with Redis Lock Guarantees

2 participants