@@ -41,9 +41,9 @@ public function testBasicUpdate()
41
41
'title ' => 'Ms. ' ,
42
42
]);
43
43
44
- TestUpdateModel1::where ('title ' , 'Ms. ' )->delete ( );
44
+ TestUpdateModel1::where ('title ' , 'Ms. ' )->update ([ ' title ' => ' Dr. ' ] );
45
45
46
- $ this ->assertCount ( 0 , TestUpdateModel1::all () );
46
+ $ this ->assertSame ( ' Dr. ' , TestUpdateModel1::first ()-> title );
47
47
}
48
48
49
49
public function testUpdateWithLimitsAndOrders ()
@@ -136,6 +136,47 @@ public function testIncrementOrDecrementIgnoresGlobalScopes()
136
136
$ deletedModel ->decrement ('counter ' );
137
137
$ this ->assertEquals (0 , $ deletedModel ->fresh ()->counter );
138
138
}
139
+
140
+ public function testUpdateSyncsPrevious ()
141
+ {
142
+ $ model = TestUpdateModel1::create ([
143
+ 'name ' => Str::random (),
144
+ 'title ' => 'Ms. ' ,
145
+ ]);
146
+
147
+ $ model ->update (['title ' => 'Dr. ' ]);
148
+
149
+ $ this ->assertSame ('Dr. ' , $ model ->title );
150
+ $ this ->assertSame ('Dr. ' , $ model ->getOriginal ('title ' ));
151
+ $ this ->assertSame ('Ms. ' , $ model ->getPrevious ('title ' ));
152
+ }
153
+
154
+ public function testSaveSyncsPrevious ()
155
+ {
156
+ $ model = TestUpdateModel1::create ([
157
+ 'name ' => Str::random (),
158
+ 'title ' => 'Ms. ' ,
159
+ ]);
160
+
161
+ $ model ->title = 'Dr. ' ;
162
+ $ model ->save ();
163
+
164
+ $ this ->assertSame ('Dr. ' , $ model ->title );
165
+ $ this ->assertSame ('Dr. ' , $ model ->getOriginal ('title ' ));
166
+ $ this ->assertSame ('Ms. ' , $ model ->getPrevious ('title ' ));
167
+ }
168
+
169
+ public function testIncrementSyncsPrevious ()
170
+ {
171
+ $ model = TestUpdateModel3::create ([
172
+ 'counter ' => 0 ,
173
+ ]);
174
+
175
+ $ model ->increment ('counter ' );
176
+
177
+ $ this ->assertEquals (1 , $ model ->counter );
178
+ $ this ->assertEquals (0 , $ model ->getPrevious ('counter ' ));
179
+ }
139
180
}
140
181
141
182
class TestUpdateModel1 extends Model
0 commit comments