Repository navigation
test(idempotency): use consistent timestamp units in unit test fixtures - #5883
Merged
Merged
Conversation
IdempotencyRecord.isExpired() reads expiryTimestamp in seconds, but several fixtures set it in milliseconds. They passed only because a millisecond value read as seconds is always far in the future. Switch them to seconds and clarify the unit and intent of the related timestamp comments. Fixes #5882
sdangol
approved these changes
Oct 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
IdempotencyRecord.isExpired()comparesexpiryTimestampwithDate.now() / 1000, so the value is in seconds, but several unit test fixtures set it in milliseconds. The tests passed only because a millisecond value read as seconds is always far in the future. This is the same kind of fixture/code mismatch that hid the bug fixed in #5881. This PR changes those fixtures to seconds and rewrites misleading timestamp comments. It only touches tests; runtime behaviour doesn't change.Changes
packages/idempotency/tests/unit/IdempotencyHandler.test.tsexpiryTimestampfixtures from milliseconds to seconds (Date.now() / 1000 + 1,Date.now() / 1000 + 10)inProgressExpiryTimestamp: 0comments:0means there is no in-progress deadline, sodetermineResultFromIdempotencyRecord()skips the expiry checkthrows when the record is in progress and outside expiry windowandretries and runs the function when the in-progress record has an expired deadlinetestspackages/idempotency/tests/unit/makeIdempotent.test.tsexpiryTimestampfixtures from milliseconds to seconds;inProgressExpiryTimestampstays in millisecondsUnit tests pass with 100% coverage.
Issue number: closes #5882
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.