@@ -137,6 +137,55 @@ describe('easysync-mutations', function () {
137
137
[ 'skip' , 1 , 1 , true ] ,
138
138
] , [ 'banana\n' , 'cabbage\n' , 'duffle\n' ] ) ;
139
139
140
+ // #2836, #5214, #3560 regressions
141
+ runMutationTest ( 8 , [ '\n' ] , [
142
+ [ 'remove' , 1 , 1 , '\n' ] ,
143
+ [ 'insert' , 'c' , 0 ] ,
144
+ ] , [ 'c' ] ) ;
145
+
146
+ runMutationTest ( 9 , [ '\n' ] , [
147
+ [ 'remove' , 1 , 1 , '\n' ] ,
148
+ [ 'insert' , 'a' ] ,
149
+ [ 'insert' , 'c\n' , 1 ] ,
150
+ ] , [ 'ac\n' ] ) ;
151
+
152
+ runMutationTest ( 10 , [ '\n' ] , [
153
+ [ 'remove' , 1 , 1 , '\n' ] ,
154
+ [ 'insert' , 'a\n' , 1 ] ,
155
+ [ 'insert' , 'c' ] ,
156
+ ] , [ 'a\n' , 'c' ] ) ;
157
+
158
+ runMutationTest ( 11 , [ '\n' , 'fun\n' , '\n' ] , [
159
+ [ 'remove' , 1 , 1 , '\n' ] ,
160
+ [ 'skip' , 4 , 1 , false ] ,
161
+ [ 'remove' , 1 , 1 , '\n' ] ,
162
+ [ 'insert' , 'c' ] ,
163
+ ] , [ 'fun\n' , 'c' ] ) ;
164
+
165
+ runMutationTest ( 12 , [ '\n' , 'fun\n' , '\n' ] , [
166
+ [ 'remove' , 1 , 1 , '\n' ] ,
167
+ [ 'skip' , 3 , 0 , false ] ,
168
+ [ 'remove' , 2 , 2 , '\n\n' ] ,
169
+ [ 'insert' , 'c' ] ,
170
+ ] , [ 'func' ] ) ;
171
+
172
+ runMutationTest ( 13 , [ '\n' , 'fun\n' , '\n' ] , [
173
+ [ 'remove' , 1 , 1 , '\n' ] ,
174
+ [ 'skip' , 3 , 0 , false ] ,
175
+ [ 'remove' , 2 , 2 , '\n\n' ] ,
176
+ [ 'insert' , 'c' ] ,
177
+ [ 'insert' , 'a\n' , 1 ] ,
178
+ [ 'insert' , 'c' ] ,
179
+ ] , [ 'funca\n' , 'c' ] ) ;
180
+
181
+ runMutationTest ( 14 , [ '\n' , 'fun\n' , '\n' ] , [
182
+ [ 'remove' , 1 , 1 , '\n' ] ,
183
+ [ 'skip' , 2 , 0 , false ] ,
184
+ [ 'remove' , 3 , 2 , 'n\n\n' ] ,
185
+ [ 'insert' , 'z' ] ,
186
+ ] , [ 'fuz' ] ) ;
187
+
188
+
140
189
it ( 'mutatorHasMore' , async function ( ) {
141
190
const lines = [ '1\n' , '2\n' , '3\n' , '4\n' ] ;
142
191
let mu ;
0 commit comments