Skip to content

test(v7): preserve explicit Unix epoch timestamp - #990

Merged
broofa merged 1 commit into
uuidjs:mainfrom
renanmpimentel:test/v7-zero-timestamp
Oct 23, 2026
Merged

broofa merged 1 commit into
uuidjs:mainfrom
renanmpimentel:test/v7-zero-timestamp

Conversation

@renanmpimentel

@renanmpimentel renanmpimentel commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Why this test matters

A truthiness fallback would replace the explicitly requested Unix epoch with the current time. The new v7 assertion catches that timestamp substitution in the first 48 bits.

Supertest audit method

I used the Supertest test-audit skill to probe whether the existing suite would catch a plausible violation of this contract. The regression was applied only in an isolated worktree. The regression proof records three executed states: the existing tests pass with that regression, the new assertion fails against the same regression, and the new test passes with the original production code restored. The published diff adds tests only.

Change and verification

Adds a regression test for the explicit msecs: 0 option in UUID v7. The expected UUID carries the Unix epoch timestamp in its first 48 bits.

Proof: changing msecs ??= Date.now() to msecs ||= Date.now() leaves all 83 existing tests passing, but makes this new assertion fail because the generated UUID contains the current timestamp. With production code restored, all 84 tests pass.

Verified with npm test, npm run test:node, npm run lint, npx tsc --noEmit -p tsconfig.json, and git diff --check. This PR changes tests only.

Repository guidance

CONTRIBUTING.md asks for npm test && npm run test:node; both passed. The PR template requests benchmarks for considerable changes; this test-only change has no runtime path or performance change.

@broofa
broofa enabled auto-merge (squash) October 23, 2026 03:47
@broofa
broofa disabled auto-merge October 23, 2026 03:47
@broofa
broofa merged commit 8eed10a into uuidjs:main Oct 23, 2026
4 checks passed
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.

2 participants