End-to-end traversal with in-process mock DNS exchange
Referral chain traversal
CNAME resolution and loop detection
NXDOMAIN/SERVFAIL handling
Max depth enforcement
Context cancellation
Hook event delivery
Mock DNS server using miekg/dns for deterministic root discovery tests
CI updated with coverage reporting step
Makefilecover target added
All tests pass
ok github.com/hits/ExploreDNS/internal/config 86.2%
ok github.com/hits/ExploreDNS/internal/dns 82.9%
ok github.com/hits/ExploreDNS/internal/fingerprint 96.4%
ok github.com/hits/ExploreDNS/internal/output 86.7%
ok github.com/hits/ExploreDNS/internal/traverse 86.7%
ok github.com/hits/ExploreDNS/internal/integration
## Comprehensive Test Suite
Implements HAN-386: comprehensive test suite for ExploreDNS.
### Coverage achieved
| Package | Before | After |
|---|---|---|
| internal/config | 66.2% | **86.2%** |
| internal/dns | 67.8% | **82.9%** |
| internal/fingerprint | 96.4% | **96.4%** |
| internal/output | 48.8% | **86.7%** |
| internal/traverse | 56.3% | **86.7%** |
All internal packages exceed the 80% target.
### Changes
- **Unit tests** added for all low-coverage areas:
- `config`: ParseMaxDepth, ParseRetries, validation edge cases
- `dns`: IterativeQueryWithExchange (all paths), mock DNS server helper, root NS helpers, minTTLFromMsg edge cases, BasicResolver integration
- `output`: rrDataString (all types), summaryTypeLabel, collectServers, serverName, WriteResolve/WriteResult for text+JSON, formatResultLine for all response types, colorize, referralServerLabel
- `traverse`: SetHooks, ResolveNS (all paths), processReferral, ensureRDFalse, resolveGlueViaSystem, newAQuery, Referral.Resolve (all paths), non-fast mode, ResolutionState.String unknown
- **Integration tests** (`internal/integration/integration_test.go`):
- End-to-end traversal with in-process mock DNS exchange
- Referral chain traversal
- CNAME resolution and loop detection
- NXDOMAIN/SERVFAIL handling
- Max depth enforcement
- Context cancellation
- Hook event delivery
- **Mock DNS server** using `miekg/dns` for deterministic root discovery tests
- **CI** updated with coverage reporting step
- **Makefile** `cover` target added
### All tests pass
```
ok github.com/hits/ExploreDNS/internal/config 86.2%
ok github.com/hits/ExploreDNS/internal/dns 82.9%
ok github.com/hits/ExploreDNS/internal/fingerprint 96.4%
ok github.com/hits/ExploreDNS/internal/output 86.7%
ok github.com/hits/ExploreDNS/internal/traverse 86.7%
ok github.com/hits/ExploreDNS/internal/integration
```
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Comprehensive Test Suite
Implements HAN-386: comprehensive test suite for ExploreDNS.
Coverage achieved
All internal packages exceed the 80% target.
Changes
Unit tests added for all low-coverage areas:
config: ParseMaxDepth, ParseRetries, validation edge casesdns: IterativeQueryWithExchange (all paths), mock DNS server helper, root NS helpers, minTTLFromMsg edge cases, BasicResolver integrationoutput: rrDataString (all types), summaryTypeLabel, collectServers, serverName, WriteResolve/WriteResult for text+JSON, formatResultLine for all response types, colorize, referralServerLabeltraverse: SetHooks, ResolveNS (all paths), processReferral, ensureRDFalse, resolveGlueViaSystem, newAQuery, Referral.Resolve (all paths), non-fast mode, ResolutionState.String unknownIntegration tests (
internal/integration/integration_test.go):Mock DNS server using
miekg/dnsfor deterministic root discovery testsCI updated with coverage reporting step
Makefile
covertarget addedAll tests pass
- Unit tests for all internal packages exceeding 80% coverage: - internal/config: 86.2% (ParseMaxDepth, ParseRetries, validation paths) - internal/dns: 82.9% (IterativeQueryWithExchange, mock DNS server, roots) - internal/fingerprint: 96.4% (unchanged, already excellent) - internal/output: 86.7% (formatters, stats, JSON/text output, hooks) - internal/traverse: 86.7% (SetHooks, ResolveNS, processReferral, ensureRDFalse, resolveGlueViaSystem, newAQuery, Referral.Resolve) - Integration tests in internal/integration/: - End-to-end traversal with mock DNS exchange function - Referral chain traversal (root -> TLD -> authoritative) - CNAME resolution and loop detection - NXDOMAIN and SERVFAIL response handling - Max depth enforcement - Context cancellation - TraverserHooks event delivery - Mock DNS server helper in internal/dns/roots_test.go using miekg/dns (enables deterministic testing without network dependency) - CI updated with coverage reporting step - Makefile: added 'cover' target for local HTML coverage reports Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: multica-agent <github@multica.ai>