mirror of
				https://github.com/jesseduffield/lazygit.git
				synced 2025-10-30 23:57:43 +02:00 
			
		
		
		
	Add test demonstrating the problem
For a worktree that contains submodules, trying to delete it shows an error and doesn't offer to force-remove it.
This commit is contained in:
		| @@ -455,6 +455,7 @@ var tests = []*components.IntegrationTest{ | ||||
| 	worktree.FastForwardWorktreeBranch, | ||||
| 	worktree.FastForwardWorktreeBranchShouldNotPolluteCurrentWorktree, | ||||
| 	worktree.ForceRemoveWorktree, | ||||
| 	worktree.ForceRemoveWorktreeWithSubmodules, | ||||
| 	worktree.RemoveWorktreeFromBranch, | ||||
| 	worktree.ResetWindowTabs, | ||||
| 	worktree.SymlinkIntoRepoSubdir, | ||||
|   | ||||
| @@ -0,0 +1,58 @@ | ||||
| package worktree | ||||
|  | ||||
| import ( | ||||
| 	"github.com/jesseduffield/lazygit/pkg/config" | ||||
| 	. "github.com/jesseduffield/lazygit/pkg/integration/components" | ||||
| ) | ||||
|  | ||||
| var ForceRemoveWorktreeWithSubmodules = NewIntegrationTest(NewIntegrationTestArgs{ | ||||
| 	Description:  "Force remove a worktree that contains submodules", | ||||
| 	ExtraCmdArgs: []string{}, | ||||
| 	Skip:         false, | ||||
| 	SetupConfig:  func(config *config.AppConfig) {}, | ||||
| 	SetupRepo: func(shell *Shell) { | ||||
| 		shell.NewBranch("mybranch") | ||||
| 		shell.CreateFileAndAdd("README.md", "hello world") | ||||
| 		shell.Commit("initial commit") | ||||
| 		shell.CloneIntoSubmodule("submodule", "submodule") | ||||
| 		shell.Commit("Add submodule") | ||||
| 		shell.AddWorktree("mybranch", "../linked-worktree", "newbranch") | ||||
| 		shell.RunCommand([]string{"git", "-C", "../linked-worktree", "submodule", "update", "--init"}) | ||||
| 	}, | ||||
| 	Run: func(t *TestDriver, keys config.KeybindingConfig) { | ||||
| 		t.Views().Worktrees(). | ||||
| 			Focus(). | ||||
| 			Lines( | ||||
| 				Contains("repo (main)").IsSelected(), | ||||
| 				Contains("linked-worktree"), | ||||
| 			). | ||||
| 			NavigateToLine(Contains("linked-worktree")). | ||||
| 			Press(keys.Universal.Remove). | ||||
| 			Tap(func() { | ||||
| 				t.ExpectPopup().Confirmation(). | ||||
| 					Title(Equals("Remove worktree")). | ||||
| 					Content(Equals("Are you sure you want to remove worktree 'linked-worktree'?")). | ||||
| 					Confirm() | ||||
|  | ||||
| 				/* EXPECTED: | ||||
| 				t.ExpectPopup().Confirmation(). | ||||
| 					Title(Equals("Remove worktree")). | ||||
| 					Content(Equals("'linked-worktree' contains modified or untracked files, or submodules (or all of these). Are you sure you want to remove it?")). | ||||
| 					Confirm() | ||||
| 				ACTUAL: */ | ||||
| 				t.ExpectPopup().Alert(). | ||||
| 					Title(Equals("Error")). | ||||
| 					Content(Equals("fatal: working trees containing submodules cannot be moved or removed")). | ||||
| 					Confirm() | ||||
| 			}). | ||||
| 			/* EXPECTED: | ||||
| 			Lines( | ||||
| 				Contains("repo (main)").IsSelected(), | ||||
| 			) | ||||
| 			ACTUAL: */ | ||||
| 			Lines( | ||||
| 				Contains("repo (main)"), | ||||
| 				Contains("linked-worktree").IsSelected(), | ||||
| 			) | ||||
| 	}, | ||||
| }) | ||||
		Reference in New Issue
	
	Block a user