@@ -266,32 +266,50 @@ func TestRebaseCommands_moveFixupCommitDown(t *testing.T) {
266266 todos []todo.Todo
267267 originalHash string
268268 fixupHash string
269+ changeToFixup bool
269270 expectedTodos []todo.Todo
270271 expectedErr error
271272 }{
272273 {
273- name : "fixup commit is the last commit" ,
274+ name : "fixup commit is the last commit (change to fixup) " ,
274275 todos : []todo.Todo {
275276 {Command : todo .Pick , Commit : "original" },
276277 {Command : todo .Pick , Commit : "fixup" },
277278 },
278- originalHash : "original" ,
279- fixupHash : "fixup" ,
279+ originalHash : "original" ,
280+ fixupHash : "fixup" ,
281+ changeToFixup : true ,
280282 expectedTodos : []todo.Todo {
281283 {Command : todo .Pick , Commit : "original" },
282284 {Command : todo .Fixup , Commit : "fixup" },
283285 },
284286 expectedErr : nil ,
285287 },
288+ {
289+ name : "fixup commit is the last commit (don't change to fixup)" ,
290+ todos : []todo.Todo {
291+ {Command : todo .Pick , Commit : "original" },
292+ {Command : todo .Pick , Commit : "fixup" },
293+ },
294+ originalHash : "original" ,
295+ fixupHash : "fixup" ,
296+ changeToFixup : false ,
297+ expectedTodos : []todo.Todo {
298+ {Command : todo .Pick , Commit : "original" },
299+ {Command : todo .Pick , Commit : "fixup" },
300+ },
301+ expectedErr : nil ,
302+ },
286303 {
287304 name : "fixup commit is separated from original commit" ,
288305 todos : []todo.Todo {
289306 {Command : todo .Pick , Commit : "original" },
290307 {Command : todo .Pick , Commit : "other" },
291308 {Command : todo .Pick , Commit : "fixup" },
292309 },
293- originalHash : "original" ,
294- fixupHash : "fixup" ,
310+ originalHash : "original" ,
311+ fixupHash : "fixup" ,
312+ changeToFixup : true ,
295313 expectedTodos : []todo.Todo {
296314 {Command : todo .Pick , Commit : "original" },
297315 {Command : todo .Fixup , Commit : "fixup" },
@@ -306,8 +324,9 @@ func TestRebaseCommands_moveFixupCommitDown(t *testing.T) {
306324 {Command : todo .Pick , Commit : "other" },
307325 {Command : todo .Pick , Commit : "fixup" },
308326 },
309- originalHash : "original" ,
310- fixupHash : "fixup" ,
327+ originalHash : "original" ,
328+ fixupHash : "fixup" ,
329+ changeToFixup : true ,
311330 expectedTodos : []todo.Todo {
312331 {Command : todo .Merge , Commit : "original" },
313332 {Command : todo .Fixup , Commit : "fixup" },
@@ -324,6 +343,7 @@ func TestRebaseCommands_moveFixupCommitDown(t *testing.T) {
324343 },
325344 originalHash : "original" ,
326345 fixupHash : "fixup" ,
346+ changeToFixup : true ,
327347 expectedTodos : nil ,
328348 expectedErr : errors .New ("Expected exactly one original hash, found 2" ),
329349 },
@@ -336,6 +356,7 @@ func TestRebaseCommands_moveFixupCommitDown(t *testing.T) {
336356 },
337357 originalHash : "original" ,
338358 fixupHash : "fixup" ,
359+ changeToFixup : true ,
339360 expectedTodos : nil ,
340361 expectedErr : errors .New ("Expected exactly one fixup hash, found 2" ),
341362 },
@@ -346,6 +367,7 @@ func TestRebaseCommands_moveFixupCommitDown(t *testing.T) {
346367 },
347368 originalHash : "original" ,
348369 fixupHash : "fixup" ,
370+ changeToFixup : true ,
349371 expectedTodos : nil ,
350372 expectedErr : errors .New ("Expected exactly one fixup hash, found 0" ),
351373 },
@@ -356,14 +378,15 @@ func TestRebaseCommands_moveFixupCommitDown(t *testing.T) {
356378 },
357379 originalHash : "original" ,
358380 fixupHash : "fixup" ,
381+ changeToFixup : true ,
359382 expectedTodos : nil ,
360383 expectedErr : errors .New ("Expected exactly one original hash, found 0" ),
361384 },
362385 }
363386
364387 for _ , scenario := range scenarios {
365388 t .Run (scenario .name , func (t * testing.T ) {
366- actualTodos , actualErr := moveFixupCommitDown (scenario .todos , scenario .originalHash , scenario .fixupHash )
389+ actualTodos , actualErr := moveFixupCommitDown (scenario .todos , scenario .originalHash , scenario .fixupHash , scenario . changeToFixup )
367390
368391 if scenario .expectedErr == nil {
369392 assert .NoError (t , actualErr )
0 commit comments