@@ -137,6 +137,55 @@ describe('easysync', function () {
137137 [ 'skip' , 1 , 1 , true ] ,
138138 ] , [ 'banana\n' , 'cabbage\n' , 'duffle\n' ] ) ;
139139
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+
140189 it ( 'mutatorHasMore' , async function ( ) {
141190 const lines = [ '1\n' , '2\n' , '3\n' , '4\n' ] ;
142191 let mu ;
0 commit comments