mirror of
				https://github.com/jesseduffield/lazygit.git
				synced 2025-10-30 23:57:43 +02:00 
			
		
		
		
	test: add integration test to verify the interactive rebase correctly work
This commit is contained in:
		
				
					committed by
					
						 Jesse Duffield
						Jesse Duffield
					
				
			
			
				
	
			
			
			
						parent
						
							ddcd6be245
						
					
				
				
					commit
					b82b6a2992
				
			| @@ -0,0 +1,66 @@ | ||||
| package interactive_rebase | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
|  | ||||
| 	"github.com/jesseduffield/lazygit/pkg/config" | ||||
| 	. "github.com/jesseduffield/lazygit/pkg/integration/components" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	BASE_BRANCH = "base-branch" | ||||
| 	TOP_BRANCH  = "top-branch" | ||||
| 	BASE_COMMIT = "base-commit" | ||||
| 	TOP_COMMIT  = "top-commit" | ||||
| ) | ||||
|  | ||||
| var AdvancedInteractiveRebase = NewIntegrationTest(NewIntegrationTestArgs{ | ||||
| 	Description:  "It begins an interactive rebase and verifies to have the possibility of editing the commits of the branch before proceeding with the actual rebase", | ||||
| 	ExtraCmdArgs: "", | ||||
| 	SetupConfig:  func(config *config.AppConfig) {}, | ||||
| 	SetupRepo: func(shell *Shell) { | ||||
| 		shell. | ||||
| 			NewBranch(BASE_BRANCH). | ||||
| 			EmptyCommit(BASE_COMMIT). | ||||
| 			NewBranch(TOP_BRANCH). | ||||
| 			EmptyCommit(TOP_COMMIT) | ||||
| 	}, | ||||
| 	Run: func(t *TestDriver, keys config.KeybindingConfig) { | ||||
| 		t.Views().Commits(). | ||||
| 			Focus(). | ||||
| 			Lines( | ||||
| 				Contains(TOP_COMMIT), | ||||
| 				Contains(BASE_COMMIT), | ||||
| 			) | ||||
|  | ||||
| 		t.Views().Branches(). | ||||
| 			Focus(). | ||||
| 			NavigateToLine(Contains(BASE_BRANCH)). | ||||
| 			Press(keys.Branches.RebaseBranch) | ||||
|  | ||||
| 		t.ExpectPopup().Menu(). | ||||
| 			Title(Equals(fmt.Sprintf("Rebase '%s' onto '%s'", TOP_BRANCH, BASE_BRANCH))). | ||||
| 			Select(Contains("Interactive rebase")). | ||||
| 			Confirm() | ||||
|  | ||||
| 		t.Views().Commits(). | ||||
| 			Focus(). | ||||
| 			Lines( | ||||
| 				Contains(TOP_COMMIT), | ||||
| 				Contains(BASE_COMMIT).Contains("YOU ARE HERE"), | ||||
| 			). | ||||
| 			NavigateToLine(Contains(TOP_COMMIT)). | ||||
| 			Press(keys.Universal.Edit). | ||||
| 			Lines( | ||||
| 				Contains(TOP_COMMIT).Contains("edit"), | ||||
| 				Contains(BASE_COMMIT).Contains("YOU ARE HERE"), | ||||
| 			). | ||||
| 			Tap(func() { | ||||
| 				t.Common().ContinueRebase() | ||||
| 			}). | ||||
| 			Lines( | ||||
| 				Contains(TOP_COMMIT).Contains("YOU ARE HERE"), | ||||
| 				Contains(BASE_COMMIT), | ||||
| 			) | ||||
| 	}, | ||||
| }) | ||||
| @@ -83,6 +83,7 @@ var tests = []*components.IntegrationTest{ | ||||
| 	filter_by_path.CliArg, | ||||
| 	filter_by_path.SelectFile, | ||||
| 	filter_by_path.TypeFile, | ||||
| 	interactive_rebase.AdvancedInteractiveRebase, | ||||
| 	interactive_rebase.AmendFirstCommit, | ||||
| 	interactive_rebase.AmendHeadCommitDuringRebase, | ||||
| 	interactive_rebase.AmendMerge, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user