mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-28 16:02:01 +03:00
Centralise logic for obtaining repo paths
There are quite a few paths you might want to get e.g. the repo's path, the worktree's path, the repo's git dir path, the worktree's git dir path. I want these all obtained once and then used when needed rather than having to have IO whenever we need them. This is not so much about reducing time spent on IO as it is about not having to care about errors every time we want a path.
This commit is contained in:
@ -12,7 +12,7 @@ import (
|
||||
|
||||
// not bothering to test the linked worktree here because it's the same logic as the rebase test
|
||||
|
||||
var Bisect = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
var AssociateBranchBisect = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
Description: "Verify that when you start a bisect in a linked worktree, Lazygit still associates the worktree with the branch",
|
||||
ExtraCmdArgs: []string{},
|
||||
Skip: false,
|
@ -13,7 +13,7 @@ import (
|
||||
// We need different logic for associated the branch depending on whether it's a main worktree or
|
||||
// linked worktree, so this test handles both.
|
||||
|
||||
var Rebase = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
var AssociateBranchRebase = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
Description: "Verify that when you start a rebase in a linked or main worktree, Lazygit still associates the worktree with the branch",
|
||||
ExtraCmdArgs: []string{},
|
||||
Skip: false,
|
@ -6,7 +6,7 @@ import (
|
||||
)
|
||||
|
||||
var BareRepo = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
Description: "Open lazygit in the worktree of a bare repo",
|
||||
Description: "Open lazygit in the worktree of a bare repo and do a rebase/bisect",
|
||||
ExtraCmdArgs: []string{},
|
||||
Skip: false,
|
||||
SetupConfig: func(config *config.AppConfig) {},
|
||||
@ -23,6 +23,8 @@ var BareRepo = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
shell.NewBranch("mybranch")
|
||||
shell.CreateFileAndAdd("blah", "blah")
|
||||
shell.Commit("initial commit")
|
||||
shell.EmptyCommit("commit two")
|
||||
shell.EmptyCommit("commit three")
|
||||
|
||||
shell.RunCommand([]string{"git", "clone", "--bare", ".", "../.bare"})
|
||||
|
||||
@ -45,6 +47,45 @@ var BareRepo = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
Contains("worktree2 (worktree)"),
|
||||
)
|
||||
|
||||
// test that a rebase works fine
|
||||
// (rebase uses the git dir of the worktree so we're confirming that it points
|
||||
// to the right git dir)
|
||||
t.Views().Commits().
|
||||
Focus().
|
||||
Lines(
|
||||
Contains("commit three").IsSelected(),
|
||||
Contains("commit two"),
|
||||
Contains("initial commit"),
|
||||
).
|
||||
Press(keys.Commits.MoveDownCommit).
|
||||
Lines(
|
||||
Contains("commit two"),
|
||||
Contains("commit three").IsSelected(),
|
||||
Contains("initial commit"),
|
||||
).
|
||||
// test that bisect works fine (same logic as above)
|
||||
NavigateToLine(Contains("commit two")).
|
||||
Press(keys.Commits.ViewBisectOptions).
|
||||
Tap(func() {
|
||||
t.ExpectPopup().Menu().
|
||||
Title(Equals("Bisect")).
|
||||
Select(MatchesRegexp(`Mark .* as bad`)).
|
||||
Confirm()
|
||||
|
||||
t.Views().Information().Content(Contains("Bisecting"))
|
||||
}).
|
||||
NavigateToLine(Contains("initial commit")).
|
||||
Press(keys.Commits.ViewBisectOptions).
|
||||
Tap(func() {
|
||||
t.ExpectPopup().Menu().
|
||||
Title(Equals("Bisect")).
|
||||
Select(MatchesRegexp(`Mark .* as good`)).
|
||||
Confirm()
|
||||
|
||||
t.Views().Information().Content(Contains("Bisecting"))
|
||||
})
|
||||
|
||||
// switch to other worktree
|
||||
t.Views().Worktrees().
|
||||
Focus().
|
||||
Lines(
|
||||
|
Reference in New Issue
Block a user