Skip to content

test : added unit tests for crypto.ts#2838

Open
tmdeveloper007 wants to merge 4 commits into
Priyanshu-byte-coder:mainfrom
tmdeveloper007:#2833
Open

test : added unit tests for crypto.ts#2838
tmdeveloper007 wants to merge 4 commits into
Priyanshu-byte-coder:mainfrom
tmdeveloper007:#2833

Conversation

@tmdeveloper007

Copy link
Copy Markdown
Contributor

Closes #2833.

Summary of What Has Been Done: Added vitest unit tests for the token encryption utilities in src/lib/crypto.ts, covering encryptToken, decryptToken, safeCompare, getExpectedSignature, and verifyGitHubSignature.

Changes Made:

  • Test encryptToken/decryptToken: AES-256-GCM roundtrip for plain text and unicode, wrong IV length returns null, tampered ciphertext returns null, missing/invalid ENCRYPTION_KEY throws, random IV produces different ciphertexts
  • Test safeCompare: equal/different strings, different lengths, empty strings
  • Test getExpectedSignature: sha256= prefix, consistency, different secrets/bodies
  • Test verifyGitHubSignature: valid signature, wrong secret, tampered body, null signature, missing sha256= prefix

Impact it Made: These functions protect all encrypted tokens (GitHub OAuth, webhook secrets). Vitest test coverage complements the existing node:test suite with proper async isolation and vitest mocking.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:testing GSSoC type bonus: tests (+10 pts) labels Jun 26, 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

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

Labels

gssoc26 GSSoC 2026 contribution 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 crypto.ts

1 participant