mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-01-22 05:29:44 +02:00
Add integration test for remote branch sort order
This commit is contained in:
parent
3fe491fcb2
commit
1e3935cbaf
@ -31,7 +31,11 @@ func NewShell(dir string, fail func(string)) *Shell {
|
||||
}
|
||||
|
||||
func (self *Shell) RunCommand(args []string) *Shell {
|
||||
output, err := self.runCommandWithOutput(args)
|
||||
return self.RunCommandWithEnv(args, []string{})
|
||||
}
|
||||
|
||||
func (self *Shell) RunCommandWithEnv(args []string, env []string) *Shell {
|
||||
output, err := self.runCommandWithOutputAndEnv(args, env)
|
||||
if err != nil {
|
||||
self.fail(fmt.Sprintf("error running command: %v\n%s", args, output))
|
||||
}
|
||||
@ -49,8 +53,12 @@ func (self *Shell) RunCommandExpectError(args []string) *Shell {
|
||||
}
|
||||
|
||||
func (self *Shell) runCommandWithOutput(args []string) (string, error) {
|
||||
return self.runCommandWithOutputAndEnv(args, []string{})
|
||||
}
|
||||
|
||||
func (self *Shell) runCommandWithOutputAndEnv(args []string, env []string) (string, error) {
|
||||
cmd := exec.Command(args[0], args[1:]...)
|
||||
cmd.Env = os.Environ()
|
||||
cmd.Env = append(os.Environ(), env...)
|
||||
cmd.Dir = self.dir
|
||||
|
||||
output, err := cmd.CombinedOutput()
|
||||
@ -164,6 +172,14 @@ func (self *Shell) EmptyCommitDaysAgo(message string, daysAgo int) *Shell {
|
||||
return self.RunCommand([]string{"git", "commit", "--allow-empty", "--date", fmt.Sprintf("%d days ago", daysAgo), "-m", message})
|
||||
}
|
||||
|
||||
func (self *Shell) EmptyCommitWithDate(message string, date string) *Shell {
|
||||
env := []string{
|
||||
"GIT_AUTHOR_DATE=" + date,
|
||||
"GIT_COMMITTER_DATE=" + date,
|
||||
}
|
||||
return self.RunCommandWithEnv([]string{"git", "commit", "--allow-empty", "-m", message}, env)
|
||||
}
|
||||
|
||||
func (self *Shell) Revert(ref string) *Shell {
|
||||
return self.RunCommand([]string{"git", "revert", ref})
|
||||
}
|
||||
|
55
pkg/integration/tests/branch/sort_remote_branches.go
Normal file
55
pkg/integration/tests/branch/sort_remote_branches.go
Normal file
@ -0,0 +1,55 @@
|
||||
package branch
|
||||
|
||||
import (
|
||||
"github.com/jesseduffield/lazygit/pkg/config"
|
||||
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
||||
)
|
||||
|
||||
var SortRemoteBranches = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
Description: "Sort remote branches alphabetically or by date",
|
||||
ExtraCmdArgs: []string{},
|
||||
Skip: false,
|
||||
SetupConfig: func(config *config.AppConfig) {},
|
||||
SetupRepo: func(shell *Shell) {
|
||||
shell.NewBranch("first")
|
||||
shell.EmptyCommitWithDate("commit", "2023-04-07 10:00:00")
|
||||
shell.NewBranch("second")
|
||||
shell.EmptyCommitWithDate("commit", "2023-04-07 12:00:00")
|
||||
shell.NewBranch("third")
|
||||
shell.EmptyCommitWithDate("commit", "2023-04-07 11:00:00")
|
||||
shell.CloneIntoRemote("origin")
|
||||
},
|
||||
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
||||
t.Views().Remotes().
|
||||
Focus().
|
||||
Lines(
|
||||
Contains("origin").IsSelected(),
|
||||
).
|
||||
PressEnter()
|
||||
|
||||
// sorted alphabetically by default
|
||||
t.Views().RemoteBranches().
|
||||
IsFocused().
|
||||
Lines(
|
||||
Contains("first").IsSelected(),
|
||||
Contains("second"),
|
||||
Contains("third"),
|
||||
).
|
||||
SelectNextItem() // to test that the selection jumps back to the first when sorting
|
||||
|
||||
t.Views().RemoteBranches().
|
||||
Press(keys.Branches.SortOrder)
|
||||
|
||||
t.ExpectPopup().Menu().Title(Equals("Sort order")).
|
||||
Select(Contains("-committerdate")).
|
||||
Confirm()
|
||||
|
||||
t.Views().RemoteBranches().
|
||||
IsFocused().
|
||||
Lines(
|
||||
Contains("second").IsSelected(),
|
||||
Contains("third"),
|
||||
Contains("first"),
|
||||
)
|
||||
},
|
||||
})
|
@ -54,6 +54,7 @@ var tests = []*components.IntegrationTest{
|
||||
branch.ResetToUpstream,
|
||||
branch.SetUpstream,
|
||||
branch.ShowDivergenceFromUpstream,
|
||||
branch.SortRemoteBranches,
|
||||
branch.Suggestions,
|
||||
branch.UnsetUpstream,
|
||||
cherry_pick.CherryPick,
|
||||
|
Loading…
x
Reference in New Issue
Block a user