Fix dish deletion list flicker with stable identity/order and add regression test

This commit is contained in:
alexandrev-tibco
2026-02-26 11:06:54 +01:00
parent 37c2e01a09
commit 9f4cf7484d
5 changed files with 29 additions and 6 deletions
+13 -1
View File
@@ -59,5 +59,17 @@ final class AutocompleteEngineTests: XCTestCase {
XCTAssertEqual(result.unfilledCount, 1)
XCTAssertNil(tuesdayDinner.dishId)
}
}
func testDishStableSortRemainsConsistentAfterDeletion() {
let base = Date()
let oldest = Dish(id: UUID(uuidString: "00000000-0000-0000-0000-000000000001")!, name: "Old", createdAt: base.addingTimeInterval(-60))
let newest = Dish(id: UUID(uuidString: "00000000-0000-0000-0000-000000000002")!, name: "New", createdAt: base)
let middle = Dish(id: UUID(uuidString: "00000000-0000-0000-0000-000000000003")!, name: "Middle", createdAt: base.addingTimeInterval(-30))
let initial = Dish.stableSortedForDisplay([oldest, newest, middle]).map(\.id)
XCTAssertEqual(initial, [newest.id, middle.id, oldest.id])
let afterDeletion = Dish.stableSortedForDisplay([newest, oldest]).map(\.id)
XCTAssertEqual(afterDeletion, [newest.id, oldest.id])
}
}