summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkg/integration/components/git.go11
-rw-r--r--pkg/integration/components/shell.go4
-rw-r--r--pkg/integration/tests/submodule/enter.go12
-rw-r--r--pkg/integration/tests/submodule/remove.go12
-rw-r--r--pkg/integration/tests/submodule/reset.go22
5 files changed, 39 insertions, 22 deletions
diff --git a/pkg/integration/components/git.go b/pkg/integration/components/git.go
index ed327b3ed..1e2975be2 100644
--- a/pkg/integration/components/git.go
+++ b/pkg/integration/components/git.go
@@ -2,7 +2,10 @@ package components
import (
"fmt"
+ "log"
"strings"
+
+ "github.com/jesseduffield/lazygit/pkg/commands/git_commands"
)
type Git struct {
@@ -44,3 +47,11 @@ func (self *Git) expect(cmdArgs []string, condition func(string) (bool, string))
return self
}
+
+func (self *Git) Version() *git_commands.GitVersion {
+ version, err := getGitVersion()
+ if err != nil {
+ log.Fatalf("Could not get git version: %v", err)
+ }
+ return version
+}
diff --git a/pkg/integration/components/shell.go b/pkg/integration/components/shell.go
index 48ff3fdf7..60c627918 100644
--- a/pkg/integration/components/shell.go
+++ b/pkg/integration/components/shell.go
@@ -345,9 +345,9 @@ func (self *Shell) CloneIntoRemote(name string) *Shell {
return self
}
-func (self *Shell) CloneIntoSubmodule(submoduleName string) *Shell {
+func (self *Shell) CloneIntoSubmodule(submoduleName string, submodulePath string) *Shell {
self.Clone("other_repo")
- self.RunCommand([]string{"git", "submodule", "add", "../other_repo", submoduleName})
+ self.RunCommand([]string{"git", "submodule", "add", "--name", submoduleName, "../other_repo", submodulePath})
return self
}
diff --git a/pkg/integration/tests/submodule/enter.go b/pkg/integration/tests/submodule/enter.go
index 7b055c2b6..29e983b7f 100644
--- a/pkg/integration/tests/submodule/enter.go
+++ b/pkg/integration/tests/submodule/enter.go
@@ -20,7 +20,7 @@ var Enter = NewIntegrationTest(NewIntegrationTestArgs{
},
SetupRepo: func(shell *Shell) {
shell.EmptyCommit("first commit")
- shell.CloneIntoSubmodule("my_submodule")
+ shell.CloneIntoSubmodule("my_submodule_name", "my_submodule_path")
shell.GitAddAll()
shell.Commit("add submodule")
},
@@ -29,14 +29,18 @@ var Enter = NewIntegrationTest(NewIntegrationTestArgs{
t.Views().Status().Content(Contains("repo"))
}
assertInSubmodule := func() {
- t.Views().Status().Content(Contains("my_submodule"))
+ if t.Git().Version().IsAtLeast(2, 22, 0) {
+ t.Views().Status().Content(Contains("my_submodule_path(my_submodule_name)"))
+ } else {
+ t.Views().Status().Content(Contains("my_submodule_path"))
+ }
}
assertInParentRepo()
t.Views().Submodules().Focus().
Lines(
- Contains("my_submodule").IsSelected(),
+ Contains("my_submodule_name").IsSelected(),
).
// enter the submodule
PressEnter()
@@ -60,7 +64,7 @@ var Enter = NewIntegrationTest(NewIntegrationTestArgs{
t.Views().Files().Focus().
Lines(
- MatchesRegexp(` M.*my_submodule \(submodule\)`).IsSelected(),
+ MatchesRegexp(` M.*my_submodule_path \(submodule\)`).IsSelected(),
).
Tap(func() {
// main view also shows the new commit when we're looking at the submodule within the files view
diff --git a/pkg/integration/tests/submodule/remove.go b/pkg/integration/tests/submodule/remove.go
index 3d85d4d5c..886eb6294 100644
--- a/pkg/integration/tests/submodule/remove.go
+++ b/pkg/integration/tests/submodule/remove.go
@@ -12,20 +12,20 @@ var Remove = NewIntegrationTest(NewIntegrationTestArgs{
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
shell.EmptyCommit("first commit")
- shell.CloneIntoSubmodule("my_submodule")
+ shell.CloneIntoSubmodule("my_submodule_name", "my_submodule_path")
shell.GitAddAll()
shell.Commit("add submodule")
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
t.Views().Submodules().Focus().
Lines(
- Contains("my_submodule").IsSelected(),
+ Contains("my_submodule_name").IsSelected(),
).
Press(keys.Universal.Remove).
Tap(func() {
t.ExpectPopup().Confirmation().
Title(Equals("Remove submodule")).
- Content(Equals("Are you sure you want to remove submodule 'my_submodule' and its corresponding directory? This is irreversible.")).
+ Content(Equals("Are you sure you want to remove submodule 'my_submodule_name' and its corresponding directory? This is irreversible.")).
Confirm()
}).
IsEmpty()
@@ -33,12 +33,12 @@ var Remove = NewIntegrationTest(NewIntegrationTestArgs{
t.Views().Files().Focus().
Lines(
MatchesRegexp(`M.*\.gitmodules`).IsSelected(),
- MatchesRegexp(`D.*my_submodule`),
+ MatchesRegexp(`D.*my_submodule_path`),
)
t.Views().Main().Content(
- Contains("-[submodule \"my_submodule\"]").
- Contains("- path = my_submodule").
+ Contains("-[submodule \"my_submodule_name\"]").
+ Contains("- path = my_submodule_path").
Contains("- url = ../other_repo"),
)
},
diff --git a/pkg/integration/tests/submodule/reset.go b/pkg/integration/tests/submodule/reset.go
index fba91bee8..a723561fc 100644
--- a/pkg/integration/tests/submodule/reset.go
+++ b/pkg/integration/tests/submodule/reset.go
@@ -20,7 +20,7 @@ var Reset = NewIntegrationTest(NewIntegrationTestArgs{
},
SetupRepo: func(shell *Shell) {
shell.EmptyCommit("first commit")
- shell.CloneIntoSubmodule("my_submodule")
+ shell.CloneIntoSubmodule("my_submodule_name", "my_submodule_path")
shell.GitAddAll()
shell.Commit("add submodule")
@@ -31,22 +31,24 @@ var Reset = NewIntegrationTest(NewIntegrationTestArgs{
t.Views().Status().Content(Contains("repo"))
}
assertInSubmodule := func() {
- t.Views().Status().Content(Contains("my_submodule"))
+ if t.Git().Version().IsAtLeast(2, 22, 0) {
+ t.Views().Status().Content(Contains("my_submodule_path(my_submodule_name)"))
+ } else {
+ t.Views().Status().Content(Contains("my_submodule_path"))
+ }
}
assertInParentRepo()
t.Views().Submodules().Focus().
Lines(
- Contains("my_submodule").IsSelected(),
+ Contains("my_submodule_name").IsSelected(),
).
// enter the submodule
PressEnter()
assertInSubmodule()
- t.Views().Status().Content(Contains("my_submodule"))
-
t.Views().Files().IsFocused().
Press("e").
Tap(func() {
@@ -65,18 +67,18 @@ var Reset = NewIntegrationTest(NewIntegrationTestArgs{
t.Views().Submodules().IsFocused()
- t.Views().Main().Content(Contains("Submodule my_submodule contains modified content"))
+ t.Views().Main().Content(Contains("Submodule my_submodule_path contains modified content"))
t.Views().Files().Focus().
Lines(
- MatchesRegexp(` M.*my_submodule \(submodule\)`),
+ MatchesRegexp(` M.*my_submodule_path \(submodule\)`),
Contains("other_file").IsSelected(),
).
// Verify we can't use range select on submodules
Press(keys.Universal.ToggleRangeSelect).
SelectPreviousItem().
Lines(
- MatchesRegexp(` M.*my_submodule \(submodule\)`).IsSelected(),
+ MatchesRegexp(` M.*my_submodule_path \(submodule\)`).IsSelected(),
Contains("other_file").IsSelected(),
).
Press(keys.Universal.Remove).
@@ -85,13 +87,13 @@ var Reset = NewIntegrationTest(NewIntegrationTestArgs{
}).
Press(keys.Universal.ToggleRangeSelect).
Lines(
- MatchesRegexp(` M.*my_submodule \(submodule\)`).IsSelected(),
+ MatchesRegexp(` M.*my_submodule_path \(submodule\)`).IsSelected(),
Contains("other_file"),
).
Press(keys.Universal.Remove).
Tap(func() {
t.ExpectPopup().Menu().
- Title(Equals("my_submodule")).
+ Title(Equals("my_submodule_path")).
Select(Contains("Stash uncommitted submodule changes and update")).
Confirm()
}).