mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-08-04 23:42:10 +03:00
Similar to what was done in 457cdce61d
, and for the same reason.
However, instead of waiting and fixing them one by one as we see them fail, I
decided to go about it more systematically. To do that, I added calls to
`time.Sleep(1 * time.Second)` in all the Shell.Commit* helper functions; this
ensures that all the commits we make get different committer time stamps, making
all these tests fail. With this I'm pretty confident that we're good now.
73 lines
2.0 KiB
Go
73 lines
2.0 KiB
Go
package commit
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
var Checkout = NewIntegrationTest(NewIntegrationTestArgs{
|
|
Description: "Checkout a commit as a detached head, or checkout an existing branch at a commit",
|
|
ExtraCmdArgs: []string{},
|
|
Skip: false,
|
|
SetupConfig: func(config *config.AppConfig) {
|
|
config.GetUserConfig().Git.LocalBranchSortOrder = "alphabetical"
|
|
},
|
|
SetupRepo: func(shell *Shell) {
|
|
shell.EmptyCommit("one")
|
|
shell.EmptyCommit("two")
|
|
shell.NewBranch("branch1")
|
|
shell.NewBranch("branch2")
|
|
shell.EmptyCommit("three")
|
|
shell.EmptyCommit("four")
|
|
},
|
|
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
|
t.Views().Commits().
|
|
Focus().
|
|
Lines(
|
|
Contains("four").IsSelected(),
|
|
Contains("three"),
|
|
Contains("two"),
|
|
Contains("one"),
|
|
).
|
|
PressPrimaryAction()
|
|
|
|
t.ExpectPopup().Menu().
|
|
Title(Contains("Checkout branch or commit")).
|
|
Lines(
|
|
MatchesRegexp("Checkout commit [a-f0-9]+ as detached head").IsSelected(),
|
|
Contains("Checkout branch"),
|
|
Contains("Cancel"),
|
|
).
|
|
Select(Contains("Checkout branch")).
|
|
Tooltip(Contains("Disabled: No branches found at selected commit.")).
|
|
Select(MatchesRegexp("Checkout commit [a-f0-9]+ as detached head")).
|
|
Confirm()
|
|
t.Views().Branches().Lines(
|
|
Contains("* (HEAD detached at"),
|
|
Contains("branch1"),
|
|
Contains("branch2"),
|
|
Contains("master"),
|
|
)
|
|
|
|
t.Views().Commits().
|
|
NavigateToLine(Contains("two")).
|
|
PressPrimaryAction()
|
|
|
|
t.ExpectPopup().Menu().
|
|
Title(Contains("Checkout branch or commit")).
|
|
Lines(
|
|
MatchesRegexp("Checkout commit [a-f0-9]+ as detached head").IsSelected(),
|
|
Contains("Checkout branch 'branch1'"),
|
|
Contains("Checkout branch 'master'"),
|
|
Contains("Cancel"),
|
|
).
|
|
Select(Contains("Checkout branch 'master'")).
|
|
Confirm()
|
|
t.Views().Branches().Lines(
|
|
Contains("master"),
|
|
Contains("branch1"),
|
|
Contains("branch2"),
|
|
)
|
|
},
|
|
})
|