// // ItineraryTestHelpers.swift // SportsTimeTests // // Shared test fixtures and helpers for Itinerary tests. // import Foundation @testable import SportsTime /// Shared test fixtures for itinerary tests enum ItineraryTestHelpers { static let testTripId = UUID() static let testDate = TestClock.now // MARK: - Day Helpers static func makeDays(count: Int, from baseDate: Date = testDate) -> [ItineraryDayData] { return (0.. Date { TestClock.calendar.date(byAdding: .day, value: 1, to: date)! } // MARK: - Travel Helpers static func makeTravelSegment(from: String, to: String) -> TravelSegment { TravelSegment( fromLocation: LocationInput(name: from, coordinate: nil), toLocation: LocationInput(name: to, coordinate: nil), travelMode: .drive, distanceMeters: 500_000, durationSeconds: 18000 ) } static func makeTravelItem(from: String, to: String, day: Int, sortOrder: Double) -> ItineraryItem { ItineraryItem( tripId: testTripId, day: day, sortOrder: sortOrder, kind: .travel(TravelInfo(fromCity: from, toCity: to)) ) } // MARK: - Game Helpers static func makeRichGame(city: String, hour: Int, baseDate: Date = testDate) -> RichGame { var dateComponents = TestClock.calendar.dateComponents([.year, .month, .day], from: baseDate) dateComponents.hour = hour let gameTime = TestClock.calendar.date(from: dateComponents)! let game = Game( id: "game-\(city)-\(UUID().uuidString.prefix(4))", homeTeamId: "team-\(city)", awayTeamId: "team-visitor", stadiumId: "stadium-\(city)", dateTime: gameTime, sport: .mlb, season: "2026", isPlayoff: false ) let stadium = Stadium( id: "stadium-\(city)", name: "\(city) Stadium", city: city, state: "XX", latitude: 40.0, longitude: -80.0, capacity: 40000, sport: .mlb ) let homeTeam = Team( id: "team-\(city)", name: "\(city) Team", abbreviation: String(city.prefix(3)).uppercased(), sport: .mlb, city: city, stadiumId: "stadium-\(city)" ) let awayTeam = Team( id: "team-visitor", name: "Visitor Team", abbreviation: "VIS", sport: .mlb, city: "Visiting", stadiumId: "stadium-visitor" ) return RichGame(game: game, homeTeam: homeTeam, awayTeam: awayTeam, stadium: stadium) } static func makeGameItem(city: String, day: Int, sortOrder: Double = 100) -> ItineraryItem { ItineraryItem( tripId: testTripId, day: day, sortOrder: sortOrder, kind: .game(gameId: "game-\(city)-\(UUID().uuidString.prefix(4))", city: city) ) } // MARK: - Custom Item Helpers static func makeCustomItem(day: Int, sortOrder: Double, title: String) -> ItineraryItem { ItineraryItem( tripId: testTripId, day: day, sortOrder: sortOrder, kind: .custom(CustomInfo(title: title, icon: "🍽️")) ) } }