Skip to content

Review Section 5.1.3. Domain Matching#580

Open
colincasey wants to merge 4 commits intomasterfrom
review-5.1.3-domain-matching
Open

Review Section 5.1.3. Domain Matching#580
colincasey wants to merge 4 commits intomasterfrom
review-5.1.3-domain-matching

Conversation

@colincasey
Copy link
Contributor

Summary

  • Restructure domainMatch.spec.ts from a flat it.each into 5 grouped describe blocks matching RFC conditions (identical strings, suffix matching, IP address rejection) and library-specific behavior (null/undefined, canonicalization)
  • Add 10 new edge case tests: empty strings, single-label domains (localhost), dot-only domains, and canonicalize=false parameter path
  • Annotate domainMatch.ts with fine-grained draft-ietf-httpbis-rfc6265bis-22 section anchors and mark library-specific behavior (null handling, optional canonicalization) as not in RFC
  • Add bis-22 compatibility note to JSDoc @remarks
  • Regenerate API documentation

No behavioral or API changes.

Test Plan

  • All 782 tests pass (vitest run)
  • Linting clean (npm run lint)
  • API docs regenerated

Closes #513

Reorganize the flat it.each in domainMatch.spec.ts into grouped
describe blocks for better readability and alignment with RFC 6265
Section 5.1.3 structure:

- null and undefined inputs (library-specific behavior)
- canonicalization (mixed case, leading dots, non-ASCII/punycode)
- identical strings (RFC condition 1)
- suffix matching with dot boundary (RFC condition 2)
- IP address rejection (RFC condition 2's IP check)

No test cases added or removed — purely structural reorganization.
This follows the pattern established in PR #547 for date tests.

Part of #513
Add tests for empty string inputs, localhost identity match,
dot-only inputs, and canonicalize=false parameter behavior.

Note: ('..', '.') returns true because canonicalization strips
the leading dot from '..' leaving '.', which matches identity.
Update JSDoc and inline comments to reference specific sections of
draft-ietf-httpbis-rfc6265bis-22, note rfc6265bis compatibility in
the remarks block, and clearly label library-specific behavior that
goes beyond the RFC algorithm. No behavioral changes.
@colincasey colincasey self-assigned this Mar 13, 2026
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.

Review Draft 20 - 5.1.3. Domain Matching

1 participant