@@ -491,6 +491,35 @@ class ParseObjectTests: XCTestCase { // swiftlint:disable:this type_body_length
491491 XCTAssertEqual ( mutableScore. player, score. player)
492492 }
493493
494+ func testRevertKeyPathUpdatedNil( ) throws {
495+ var score = GameScore ( points: 19 , name: " fire " )
496+ score. objectId = " yolo "
497+ var mutableScore = score. mergeable
498+ mutableScore. points = 50
499+ mutableScore. player = nil
500+ XCTAssertNotEqual ( mutableScore, score)
501+ try mutableScore. revertKeyPath ( \. player)
502+ XCTAssertNotEqual ( mutableScore, score)
503+ XCTAssertEqual ( mutableScore. objectId, score. objectId)
504+ XCTAssertNotEqual ( mutableScore. points, score. points)
505+ XCTAssertEqual ( mutableScore. player, score. player)
506+ }
507+
508+ func testRevertKeyPathOriginalNil( ) throws {
509+ var score = GameScore ( points: 19 , name: " fire " )
510+ score. objectId = " yolo "
511+ score. player = nil
512+ var mutableScore = score. mergeable
513+ mutableScore. points = 50
514+ mutableScore. player = " ali "
515+ XCTAssertNotEqual ( mutableScore, score)
516+ try mutableScore. revertKeyPath ( \. player)
517+ XCTAssertNotEqual ( mutableScore, score)
518+ XCTAssertEqual ( mutableScore. objectId, score. objectId)
519+ XCTAssertNotEqual ( mutableScore. points, score. points)
520+ XCTAssertEqual ( mutableScore. player, score. player)
521+ }
522+
494523 func testRevertKeyPathMissingOriginal( ) throws {
495524 var score = GameScore ( points: 19 , name: " fire " )
496525 score. objectId = " yolo "
0 commit comments