Audit and fix 52 test correctness issues across 22 files
Systematic audit of 1,191 tests found tests written to pass rather than verify correctness. Key fixes: Infrastructure: - TestClock: fixed timezone from .current to America/New_York (deterministic) - TestFixtures: added 1.3x road routing factor to match production - ItineraryTestHelpers: real per-city coordinates instead of hardcoded (40,-80) Planning tests: - Added missing Scenario E factory dispatch tests - Tightened 12 loose assertions (>= 1 → == 8.0, > 0 → range checks) - Fixed 4 no-op tests that accepted both success and failure - Fixed wrong repeat-city invariant (was checking same-day, not different-day) - Fixed tautological assertion in missing-stadium edge case Services/Domain/Export tests: - Replaced 4 placeholder tests (#expect(true)) with real assertions - Fixed tautological assertions in POISearchServiceTests - Fixed Chicago coordinate in RegionMapSelectorTests (-89 → -87.6553) - Added sort order verification to ItineraryRowFlatteningTests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -118,11 +118,15 @@ struct CacheStatsTests {
|
||||
}
|
||||
|
||||
/// - Invariant: sum of entriesBySport <= totalEntries
|
||||
// NOTE: CacheStats is a plain data struct — this test documents the expected
|
||||
// relationship between sport entries and total, not enforcement by the cache.
|
||||
// The struct does not validate or clamp values; callers are responsible for
|
||||
// providing consistent data.
|
||||
@Test("Invariant: sport entries sum does not exceed total")
|
||||
func invariant_sportEntriesSumDoesNotExceedTotal() {
|
||||
let bySport: [Sport: Int] = [.mlb: 30, .nba: 40, .nhl: 30]
|
||||
let stats = makeStats(totalEntries: 100, entriesBySport: bySport)
|
||||
let sportSum = bySport.values.reduce(0, +)
|
||||
let sportSum = stats.entriesBySport.values.reduce(0, +)
|
||||
#expect(sportSum <= stats.totalEntries)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user