@@ -1203,6 +1203,27 @@ final class MigrationTests: XCTestCase {
12031203 XCTAssertEqual ( migratedOrder. value ( forKey: " needsProcessing " ) as? Bool , false )
12041204 }
12051205
1206+ func test_migrating_from_69_to_70_adds_refundedItemID_property_to_OrderItemRefund( ) throws {
1207+ // Given
1208+ let sourceContainer = try startPersistentContainer ( " Model 69 " )
1209+ let sourceContext = sourceContainer. viewContext
1210+
1211+ let orderItemRefund = insertOrderItemRefund ( to: sourceContext)
1212+
1213+ // Confidence check:
1214+ // The `itemID` property already exists on Model 69, but the `refundedItemID` does not
1215+ XCTAssertNotNil ( orderItemRefund. entity. attributesByName [ " itemID " ] )
1216+ XCTAssertNil ( orderItemRefund. entity. attributesByName [ " refundedItemID " ] )
1217+
1218+ // When
1219+ let targetContainer = try migrate ( sourceContainer, to: " Model 70 " )
1220+ let targetContext = targetContainer. viewContext
1221+ let migratedOrderItemRefund = insertOrderItemRefund ( to: targetContext)
1222+
1223+ // Confirms the `refundedItemID` property now exists on Model 70
1224+ XCTAssertNotNil ( migratedOrderItemRefund. entity. attributesByName [ " refundedItemID " ] )
1225+ }
1226+
12061227 func test_migrating_from_70_to_71_adds_custom_fields_property_to_order( ) throws {
12071228 // Given
12081229 let sourceContainer = try startPersistentContainer ( " Model 70 " )
@@ -1527,6 +1548,13 @@ private extension MigrationTests {
15271548 ] )
15281549 }
15291550
1551+ @discardableResult
1552+ func insertOrderItemRefund( to context: NSManagedObjectContext ) -> NSManagedObject {
1553+ context. insert ( entityName: " OrderItemRefund " , properties: [
1554+ " itemID " : 123
1555+ ] )
1556+ }
1557+
15301558 @discardableResult
15311559 func insertProduct( to context: NSManagedObjectContext , forModel modelVersion: Int ) -> NSManagedObject {
15321560 let product = context. insert ( entityName: " Product " , properties: [
0 commit comments