Skip to content

[Refactoring] Split src/squid-config.test.ts (1,964 lines) by test domain #2539

@github-actions

Description

@github-actions

Refactoring Opportunity

Summary

  • File: src/squid-config.test.ts
  • Current size: 1,964 lines
  • Responsibilities identified: 8 distinct test areas

Evidence

line 6:   describe('defense-in-depth: rejects injected values')    ← security tests
line 75:  describe('generateSquidConfig')
line 78:    describe('Protocol-Specific Domain Handling')
line 167:   describe('Subdomain Handling')
line 200:   describe('Redundant Subdomain Removal')
line 373:   describe('Configuration Structure')
line 443:   describe('Domain Ordering')
line 459:   describe('Logging Configuration')                       ← ~155 lines
line 616:   describe('Streaming/Long-lived Connection Support')
line 690:   describe('Real-world Domain Patterns')
line 752:   describe('Wildcard Pattern Support')
line 887:   describe('Protocol-Specific Wildcard Patterns')
line 925:   describe('Protocol Access Rules Order')
line 988:   describe('Blocklist Support')                           ← ~115 lines
line 1102:  describe('SSL Bump Mode')                               ← ~215 lines
line 1318: describe('Direct IP bypass protection')                  ← ~60 lines
line 1378: describe('Port validation in generateSquidConfig')
line 1457: describe('Dangerous ports blocklist')

At 1,964 lines with 18 nested describe blocks, the file is approaching the 2,000-line "must split" threshold.

Proposed Split

  • src/squid-config-security.test.ts — injection defense, direct IP bypass, dangerous ports blocklist (~300 lines)
  • src/squid-config-domains.test.ts — domain handling, subdomains, wildcards, redundancy, ordering (~600 lines)
  • src/squid-config-features.test.ts — SSL bump, blocklist, logging, streaming (~600 lines)
  • src/squid-config.test.ts — configuration structure, protocol rules, real-world patterns (~400 lines)

Effort Estimate

Low — describe blocks are already well-organized and largely independent. Test helper setup may need extraction.

Benefits

  • Security-focused tests (defense-in-depth, direct IP bypass, dangerous ports) are grouped together, making it easier to audit the security test coverage
  • SSL bump tests (~215 lines) can be maintained alongside ssl-bump.ts
  • Smaller files improve navigation during active development

Detected by Refactoring Scanner workflow. Run date: 2026-05-05

Generated by Refactoring Opportunity Scanner · ● 350.4K ·

  • expires on Jul 4, 2026, 6:32 AM UTC

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions