mirror of
				https://github.com/jesseduffield/lazygit.git
				synced 2025-10-30 23:57:43 +02:00 
			
		
		
		
	migrate test for rename branch and pull
This commit is contained in:
		| @@ -193,3 +193,9 @@ func (self *Shell) RemoveRemoteBranch(remoteName string, branch string) *Shell { | ||||
|  | ||||
| 	return self | ||||
| } | ||||
|  | ||||
| func (self *Shell) HardReset(ref string) *Shell { | ||||
| 	self.RunCommand(fmt.Sprintf("git reset --hard %s", ref)) | ||||
|  | ||||
| 	return self | ||||
| } | ||||
|   | ||||
							
								
								
									
										57
									
								
								pkg/integration/tests/sync/rename_branch_and_pull.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								pkg/integration/tests/sync/rename_branch_and_pull.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | ||||
| package sync | ||||
|  | ||||
| import ( | ||||
| 	"github.com/jesseduffield/lazygit/pkg/config" | ||||
| 	. "github.com/jesseduffield/lazygit/pkg/integration/components" | ||||
| ) | ||||
|  | ||||
| var RenameBranchAndPull = NewIntegrationTest(NewIntegrationTestArgs{ | ||||
| 	Description:  "Rename a branch to no longer match its upstream, then pull from the upstream", | ||||
| 	ExtraCmdArgs: "", | ||||
| 	Skip:         false, | ||||
| 	SetupConfig: func(config *config.AppConfig) { | ||||
| 		config.UserConfig.Git.AutoFetch = false | ||||
| 	}, | ||||
| 	SetupRepo: func(shell *Shell) { | ||||
| 		shell.EmptyCommit("one") | ||||
| 		shell.EmptyCommit("two") | ||||
|  | ||||
| 		shell.CloneIntoRemote("origin") | ||||
| 		shell.SetBranchUpstream("master", "origin/master") | ||||
|  | ||||
| 		// remove the 'two' commit so that we have something to pull from the remote | ||||
| 		shell.HardReset("HEAD^") | ||||
| 	}, | ||||
| 	Run: func(t *TestDriver, keys config.KeybindingConfig) { | ||||
| 		t.Views().Commits(). | ||||
| 			Lines( | ||||
| 				Contains("one"), | ||||
| 			) | ||||
|  | ||||
| 		t.Views().Branches(). | ||||
| 			Focus(). | ||||
| 			Lines( | ||||
| 				Contains("master"), | ||||
| 			). | ||||
| 			Press(keys.Branches.RenameBranch). | ||||
| 			Tap(func() { | ||||
| 				t.ExpectPopup().Confirmation(). | ||||
| 					Title(Equals("rename branch")). | ||||
| 					Content(Equals("This branch is tracking a remote. This action will only rename the local branch name, not the name of the remote branch. Continue?")). | ||||
| 					Confirm() | ||||
|  | ||||
| 				t.ExpectPopup().Prompt(). | ||||
| 					Title(Contains("Enter new branch name")). | ||||
| 					InitialText(Equals("master")). | ||||
| 					Type("-local"). | ||||
| 					Confirm() | ||||
| 			}). | ||||
| 			Press(keys.Universal.PullFiles) | ||||
|  | ||||
| 		t.Views().Commits(). | ||||
| 			Lines( | ||||
| 				Contains("two"), | ||||
| 				Contains("one"), | ||||
| 			) | ||||
| 	}, | ||||
| }) | ||||
| @@ -66,6 +66,7 @@ var tests = []*components.IntegrationTest{ | ||||
| 	diff.DiffAndApplyPatch, | ||||
| 	diff.DiffCommits, | ||||
| 	sync.FetchPrune, | ||||
| 	sync.RenameBranchAndPull, | ||||
| } | ||||
|  | ||||
| func GetTests() []*components.IntegrationTest { | ||||
|   | ||||
| @@ -1 +0,0 @@ | ||||
| ref: refs/heads/master | ||||
| @@ -1,6 +0,0 @@ | ||||
| [core] | ||||
| 	repositoryformatversion = 0 | ||||
| 	filemode = true | ||||
| 	bare = true | ||||
| [remote "origin"] | ||||
| 	url = /home/mark/Downloads/gits/lazygit/test/integration/fetchRemoteBranchWithNonmatchingName/actual/./repo | ||||
| @@ -1 +0,0 @@ | ||||
| Unnamed repository; edit this file 'description' to name the repository. | ||||
| @@ -1,6 +0,0 @@ | ||||
| # git ls-files --others --exclude-from=.git/info/exclude | ||||
| # Lines that start with '#' are comments. | ||||
| # For a project mostly in C, the following would be a good set of | ||||
| # exclude patterns (uncomment them if you want to use them): | ||||
| # *.[oa] | ||||
| # *~ | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,3 +0,0 @@ | ||||
| x��A | ||||
| �0@Q�9�����I | ||||
| "BW=F�L��!R"����~�����r��*�J��d	��¬�D��j���E��<x����v�f�M�C?�^�^r�;�L9�pF���zL��ɝ}��)�2�,� | ||||
| @@ -1,2 +0,0 @@ | ||||
| x��A | ||||
| � E����q�D!�BV9��# | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,2 +0,0 @@ | ||||
| # pack-refs with: peeled fully-peeled sorted  | ||||
| b090d7f0029e74de260f7458721b8edd1e618edc refs/heads/master | ||||
| @@ -1 +0,0 @@ | ||||
| myfile4 | ||||
| @@ -1 +0,0 @@ | ||||
| b090d7f0029e74de260f7458721b8edd1e618edc		branch 'master' of ../origin | ||||
| @@ -1 +0,0 @@ | ||||
| ref: refs/heads/master-local | ||||
| @@ -1 +0,0 @@ | ||||
| 12d38e54cd419303587ba4613fb1194ec5c9d04f | ||||
| @@ -1,14 +0,0 @@ | ||||
| [core] | ||||
| 	repositoryformatversion = 0 | ||||
| 	filemode = true | ||||
| 	bare = false | ||||
| 	logallrefupdates = true | ||||
| [user] | ||||
| 	email = CI@example.com | ||||
| 	name = CI | ||||
| [remote "origin"] | ||||
| 	url = ../origin | ||||
| 	fetch = +refs/heads/*:refs/remotes/origin/* | ||||
| [branch "master-local"] | ||||
| 	remote = origin | ||||
| 	merge = refs/heads/master | ||||
| @@ -1 +0,0 @@ | ||||
| Unnamed repository; edit this file 'description' to name the repository. | ||||
										
											Binary file not shown.
										
									
								
							| @@ -1,6 +0,0 @@ | ||||
| # git ls-files --others --exclude-from=.git/info/exclude | ||||
| # Lines that start with '#' are comments. | ||||
| # For a project mostly in C, the following would be a good set of | ||||
| # exclude patterns (uncomment them if you want to use them): | ||||
| # *.[oa] | ||||
| # *~ | ||||
| @@ -1,8 +0,0 @@ | ||||
| 0000000000000000000000000000000000000000 3e5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 CI <CI@example.com> 1654108479 +0200	commit (initial): myfile1 | ||||
| 3e5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 12d38e54cd419303587ba4613fb1194ec5c9d04f CI <CI@example.com> 1654108479 +0200	commit: myfile2 | ||||
| 12d38e54cd419303587ba4613fb1194ec5c9d04f 72ee6cc86de71389b9c70e24c7d8c8837e7d3566 CI <CI@example.com> 1654108479 +0200	commit: myfile3 | ||||
| 72ee6cc86de71389b9c70e24c7d8c8837e7d3566 b090d7f0029e74de260f7458721b8edd1e618edc CI <CI@example.com> 1654108479 +0200	commit: myfile4 | ||||
| b090d7f0029e74de260f7458721b8edd1e618edc 12d38e54cd419303587ba4613fb1194ec5c9d04f CI <CI@example.com> 1654108479 +0200	reset: moving to HEAD~2 | ||||
| 12d38e54cd419303587ba4613fb1194ec5c9d04f 0000000000000000000000000000000000000000 CI <CI@example.com> 1654108482 +0200	Branch: renamed refs/heads/master to refs/heads/master-local | ||||
| 0000000000000000000000000000000000000000 12d38e54cd419303587ba4613fb1194ec5c9d04f CI <CI@example.com> 1654108482 +0200	Branch: renamed refs/heads/master to refs/heads/master-local | ||||
| 12d38e54cd419303587ba4613fb1194ec5c9d04f b090d7f0029e74de260f7458721b8edd1e618edc CI <CI@example.com> 1654108482 +0200	pull --no-edit --ff-only origin master: Fast-forward | ||||
| @@ -1,7 +0,0 @@ | ||||
| 0000000000000000000000000000000000000000 3e5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 CI <CI@example.com> 1654108479 +0200	commit (initial): myfile1 | ||||
| 3e5a250f3b6d2ea4ea93b3006aaceeb75bb8d0b6 12d38e54cd419303587ba4613fb1194ec5c9d04f CI <CI@example.com> 1654108479 +0200	commit: myfile2 | ||||
| 12d38e54cd419303587ba4613fb1194ec5c9d04f 72ee6cc86de71389b9c70e24c7d8c8837e7d3566 CI <CI@example.com> 1654108479 +0200	commit: myfile3 | ||||
| 72ee6cc86de71389b9c70e24c7d8c8837e7d3566 b090d7f0029e74de260f7458721b8edd1e618edc CI <CI@example.com> 1654108479 +0200	commit: myfile4 | ||||
| b090d7f0029e74de260f7458721b8edd1e618edc 12d38e54cd419303587ba4613fb1194ec5c9d04f CI <CI@example.com> 1654108479 +0200	reset: moving to HEAD~2 | ||||
| 12d38e54cd419303587ba4613fb1194ec5c9d04f 12d38e54cd419303587ba4613fb1194ec5c9d04f CI <CI@example.com> 1654108482 +0200	Branch: renamed refs/heads/master to refs/heads/master-local | ||||
| 12d38e54cd419303587ba4613fb1194ec5c9d04f b090d7f0029e74de260f7458721b8edd1e618edc CI <CI@example.com> 1654108482 +0200	pull --no-edit --ff-only origin master: Fast-forward | ||||
| @@ -1 +0,0 @@ | ||||
| 0000000000000000000000000000000000000000 b090d7f0029e74de260f7458721b8edd1e618edc CI <CI@example.com> 1654108479 +0200	fetch origin: storing head | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,3 +0,0 @@ | ||||
| x��A | ||||
| �0@Q�9�����I | ||||
| "BW=F�L��!R"����~�����r��*�J��d	��¬�D��j���E��<x����v�f�M�C?�^�^r�;�L9�pF���zL��ɝ}��)�2�,� | ||||
| @@ -1,2 +0,0 @@ | ||||
| x��A | ||||
| � E����q�D!�BV9��# | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +0,0 @@ | ||||
| b090d7f0029e74de260f7458721b8edd1e618edc | ||||
| @@ -1 +0,0 @@ | ||||
| b090d7f0029e74de260f7458721b8edd1e618edc | ||||
| @@ -1 +0,0 @@ | ||||
| test1 | ||||
| @@ -1 +0,0 @@ | ||||
| test2 | ||||
| @@ -1 +0,0 @@ | ||||
| test3 | ||||
| @@ -1 +0,0 @@ | ||||
| test4 | ||||
| @@ -1 +0,0 @@ | ||||
| {"KeyEvents":[{"Timestamp":703,"Mod":0,"Key":256,"Ch":108},{"Timestamp":1151,"Mod":0,"Key":256,"Ch":82},{"Timestamp":1692,"Mod":0,"Key":13,"Ch":13},{"Timestamp":2183,"Mod":0,"Key":256,"Ch":45},{"Timestamp":2372,"Mod":0,"Key":256,"Ch":108},{"Timestamp":2498,"Mod":0,"Key":256,"Ch":111},{"Timestamp":2617,"Mod":0,"Key":256,"Ch":99},{"Timestamp":2663,"Mod":0,"Key":256,"Ch":97},{"Timestamp":2724,"Mod":0,"Key":256,"Ch":108},{"Timestamp":3196,"Mod":0,"Key":13,"Ch":13},{"Timestamp":3837,"Mod":0,"Key":256,"Ch":102},{"Timestamp":4854,"Mod":0,"Key":256,"Ch":113}],"ResizeEvents":[{"Timestamp":0,"Width":213,"Height":56}]} | ||||
| @@ -1,36 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| set -e | ||||
|  | ||||
| set -e | ||||
|  | ||||
| cd $1 | ||||
|  | ||||
| git init | ||||
|  | ||||
| git config user.email "CI@example.com" | ||||
| git config user.name "CI" | ||||
|  | ||||
| echo test1 > myfile1 | ||||
| git add . | ||||
| git commit -am "myfile1" | ||||
| echo test2 > myfile2 | ||||
| git add . | ||||
| git commit -am "myfile2" | ||||
| echo test3 > myfile3 | ||||
| git add . | ||||
| git commit -am "myfile3" | ||||
| echo test4 > myfile4 | ||||
| git add . | ||||
| git commit -am "myfile4" | ||||
|  | ||||
| cd .. | ||||
| git clone --bare ./repo origin | ||||
|  | ||||
| cd repo | ||||
|  | ||||
| git reset --hard HEAD~2 | ||||
| git remote add origin ../origin | ||||
| git fetch origin | ||||
| git branch --set-upstream-to=origin/master | ||||
|  | ||||
| @@ -1 +0,0 @@ | ||||
| { "description": "allow unsetting the upstream of the current branch", "speed": 10 } | ||||
		Reference in New Issue
	
	Block a user