fix: resolve travel anchor ID collision for repeat city pairs
Include segment index in travel anchor IDs ("travel:INDEX:from->to")
so Follow Team trips visiting the same city pair multiple times get
unique, independently addressable travel segments. Prevents override
dictionary collisions and incorrect validDayRange lookups.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -182,7 +182,7 @@ final class ItineraryTravelConstraintTests: XCTestCase {
|
||||
}
|
||||
controller.reloadData(
|
||||
days: [dayData],
|
||||
travelValidRanges: ["travel:chicago->detroit": 1...1],
|
||||
travelValidRanges: ["travel:0:chicago->detroit": 1...1],
|
||||
itineraryItems: [chicagoGame, travel]
|
||||
)
|
||||
|
||||
@@ -214,7 +214,7 @@ final class ItineraryTravelConstraintTests: XCTestCase {
|
||||
}
|
||||
controller.reloadData(
|
||||
days: [day1, day2, day3],
|
||||
travelValidRanges: ["travel:chicago->detroit": 2...3],
|
||||
travelValidRanges: ["travel:0:chicago->detroit": 2...3],
|
||||
itineraryItems: [travelModelItem]
|
||||
)
|
||||
|
||||
@@ -222,7 +222,7 @@ final class ItineraryTravelConstraintTests: XCTestCase {
|
||||
// Move travel (row 2) to row 3 (after Day3 header = Day 3)
|
||||
controller.tableView(controller.tableView, moveRowAt: IndexPath(row: 2, section: 0), to: IndexPath(row: 3, section: 0))
|
||||
|
||||
XCTAssertEqual(capturedTravelId, "travel:chicago->detroit")
|
||||
XCTAssertEqual(capturedTravelId, "travel:0:chicago->detroit")
|
||||
XCTAssertEqual(capturedDay, 3, "Travel should now be on Day 3")
|
||||
}
|
||||
|
||||
@@ -231,7 +231,7 @@ final class ItineraryTravelConstraintTests: XCTestCase {
|
||||
func test_moveValidation_travel_snapsToValidDayRange() {
|
||||
// Given: Travel with valid range Days 2-3
|
||||
let travel = H.makeTravelSegment(from: "Chicago", to: "Detroit")
|
||||
let travelId = "travel:chicago->detroit"
|
||||
let travelId = "travel:0:chicago->detroit"
|
||||
let travelItem = ItineraryRowItem.travel(travel, dayNumber: 2)
|
||||
let travelModelItem = H.makeTravelItem(from: "Chicago", to: "Detroit", day: 2, sortOrder: 1.0)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user