Overview
Add an optional DNS resolution check to the test command that verifies configured domains resolve to the expected instance IP. This helps users identify DNS configuration issues early while keeping infrastructure tests decoupled from DNS setup.
Specification
See detailed specification: docs/issues/336-add-dns-resolution-check-to-test-command.md
🏗️ Architecture Requirements
DDD Layer: Application (Steps) + Infrastructure (DNS resolution)
Module Path: src/application/steps/ + src/infrastructure/dns/
Pattern: Step + Infrastructure Service
Module Structure Requirements
Architectural Constraints
Anti-Patterns to Avoid
- ❌ Using
println! or direct stdout/stderr access (use UserOutput)
- ❌ Making DNS checks required/strict (should be advisory warnings)
- ❌ Mixing DNS resolution logic in application layer
- ❌ Failing infrastructure tests due to DNS issues
Implementation Plan
Phase 1: Add DNS Resolution Infrastructure (2-3 hours)
Phase 2: Add DNS Check Step (2-3 hours)
Phase 3: Integration and Testing (1-2 hours)
Acceptance Criteria
Note for Contributors: These criteria define what the PR reviewer will check. Use this as your pre-review checklist before submitting the PR to minimize back-and-forth iterations.
Quality Checks:
Task-Specific Criteria:
Related
Overview
Add an optional DNS resolution check to the
testcommand that verifies configured domains resolve to the expected instance IP. This helps users identify DNS configuration issues early while keeping infrastructure tests decoupled from DNS setup.Specification
See detailed specification: docs/issues/336-add-dns-resolution-check-to-test-command.md
🏗️ Architecture Requirements
DDD Layer: Application (Steps) + Infrastructure (DNS resolution)
Module Path:
src/application/steps/+src/infrastructure/dns/Pattern: Step + Infrastructure Service
Module Structure Requirements
Architectural Constraints
UserOutputmethods (see docs/contributing/output-handling.md)Anti-Patterns to Avoid
println!or direct stdout/stderr access (useUserOutput)Implementation Plan
Phase 1: Add DNS Resolution Infrastructure (2-3 hours)
src/infrastructure/dns/resolver.rsmodulestd::net::ToSocketAddrsortrust-dns-resolvercratePhase 2: Add DNS Check Step (2-3 hours)
src/application/steps/test/UserOutput(warnings, not errors)Phase 3: Integration and Testing (1-2 hours)
Acceptance Criteria
Quality Checks:
./scripts/pre-commit.shTask-Specific Criteria:
testcommandUserOutputmethods (noprintln!or direct stdout/stderr)Related