Skip to content

test: add unit tests for safeCompare timing-safe comparison#1015

Open
Sarthak-Nayak wants to merge 2 commits into
Priyanshu-byte-coder:mainfrom
Sarthak-Nayak:main
Open

test: add unit tests for safeCompare timing-safe comparison#1015
Sarthak-Nayak wants to merge 2 commits into
Priyanshu-byte-coder:mainfrom
Sarthak-Nayak:main

Conversation

@Sarthak-Nayak
Copy link
Copy Markdown

Closes #827

Summary of Changes:

  • Exported safeCompare from src/app/api/webhooks/github/route.ts to make it accessible for the test runner.
  • Added a comprehensive Vitest unit test suite covering:
    • Immediate false returns on length mismatch (before timingSafeEqual).
    • Correct true evaluations on identical strings.
    • Safe handling of empty strings without exceptions.
  • Integrated a mock/spy on crypto.timingSafeEqual to actively verify that the timing-safe comparison logic is triggered appropriately.

@vercel
Copy link
Copy Markdown

vercel Bot commented May 25, 2026

@Sarthak-Nayak is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:feature GSSoC type bonus: new feature type:testing GSSoC type bonus: tests (+10 pts) labels May 25, 2026
@github-actions
Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your first PR on DevTrack! 🎉

A maintainer will review it within 48 hours. While you wait:

  • Make sure CI is passing (type-check + lint)
  • Double-check the PR description is filled out and the issue is linked
  • Feel free to ask questions in Discussions if you need help

If you find DevTrack useful, a ⭐ star on the repo is always appreciated — it helps the project grow and attract more contributors!

@Priyanshu-byte-coder
Copy link
Copy Markdown
Owner

Hi! This PR now has a merge conflict with main, likely on the shared e2e test files (e2e/dashboard-widgets.spec.js, e2e/auth-bypass.spec.js, e2e/landing.spec.js). Multiple PRs were merged recently and the e2e files updated. Please rebase onto the latest main:

git fetch origin
git rebase origin/main
# resolve any conflicts
git push --force-with-lease

Your actual feature/fix changes are valuable — we'd love to get this merged once rebased!

@Sarthak-Nayak
Copy link
Copy Markdown
Author

Hey @Priyanshu-byte-coder, I've successfully rebased the branch onto the latest main. The code is clean and ready for review!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:feature GSSoC type bonus: new feature type:testing GSSoC type bonus: tests (+10 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test : add unit tests for safeCompare timing-safe comparison

2 participants