@@ -3260,6 +3260,36 @@ final class MigrationTests: XCTestCase {
32603260 XCTAssertEqual ( predefinedOption. value ( forKey: " predefinedPackages " ) as? NSSet , NSSet ( array: [ predefinedPackage] ) )
32613261 XCTAssertEqual ( savedPredefinedPackage. value ( forKey: " package " ) as? WooShippingPredefinedPackage , predefinedPackage)
32623262 }
3263+
3264+ func test_migrating_from_119_to_120_adds_new_hasSSOEnabled_attribute_to_site( ) throws {
3265+ // Given
3266+ let sourceContainer = try startPersistentContainer ( " Model 119 " )
3267+ let sourceContext = sourceContainer. viewContext
3268+
3269+ let site = insertSite ( to: sourceContext)
3270+ try sourceContext. save ( )
3271+
3272+ XCTAssertNil ( site. entity. attributesByName [ " hasSSOEnabled " ] , " Precondition. Attribute does not exist. " )
3273+
3274+ // When
3275+ let targetContainer = try migrate ( sourceContainer, to: " Model 120 " )
3276+
3277+ // Then
3278+ let targetContext = targetContainer. viewContext
3279+ let migratedSite = try XCTUnwrap ( targetContext. first ( entityName: " Site " ) )
3280+
3281+ // `hasSSOEnabled` should be present in `migratedSite`
3282+ XCTAssertNotNil ( migratedSite. entity. attributesByName [ " hasSSOEnabled " ] )
3283+
3284+ let savedHasSSOEnabled = try XCTUnwrap ( migratedSite. value ( forKey: " hasSSOEnabled " ) as? Bool )
3285+ XCTAssertFalse ( savedHasSSOEnabled) // default value
3286+
3287+ migratedSite. setValue ( true , forKey: " hasSSOEnabled " )
3288+ try targetContext. save ( )
3289+
3290+ let updatedHasSSOEnabled = try XCTUnwrap ( migratedSite. value ( forKey: " hasSSOEnabled " ) as? Bool )
3291+ XCTAssertTrue ( updatedHasSSOEnabled)
3292+ }
32633293}
32643294
32653295// MARK: - Persistent Store Setup and Migrations
0 commit comments