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 · ◷
Refactoring Opportunity
Summary
src/squid-config.test.tsEvidence
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
defense-in-depth, direct IP bypass, dangerous ports) are grouped together, making it easier to audit the security test coverage~215 lines) can be maintained alongsidessl-bump.tsDetected by Refactoring Scanner workflow. Run date: 2026-05-05