mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-31 14:24:25 +03:00
migrate submodule enter test
This commit is contained in:
@ -83,7 +83,7 @@ func (self *matcher) MatchesRegexp(target string) *matcher {
|
||||
if err != nil {
|
||||
return false, fmt.Sprintf("Unexpected error parsing regular expression '%s': %s", target, err.Error())
|
||||
}
|
||||
return matched, fmt.Sprintf("Expected '%s' to match regular expression '%s'", value, target)
|
||||
return matched, fmt.Sprintf("Expected '%s' to match regular expression /%s/", value, target)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
69
pkg/integration/tests/submodule/enter.go
Normal file
69
pkg/integration/tests/submodule/enter.go
Normal file
@ -0,0 +1,69 @@
|
||||
package submodule
|
||||
|
||||
import (
|
||||
"github.com/jesseduffield/lazygit/pkg/config"
|
||||
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
||||
)
|
||||
|
||||
var Enter = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
Description: "Enter a submodule, add a commit, and then stage the change in the parent repo",
|
||||
ExtraCmdArgs: "",
|
||||
Skip: false,
|
||||
SetupConfig: func(cfg *config.AppConfig) {
|
||||
cfg.UserConfig.CustomCommands = []config.CustomCommand{
|
||||
{
|
||||
Key: "e",
|
||||
Context: "files",
|
||||
Command: "git commit --allow-empty -m \"empty commit\"",
|
||||
},
|
||||
}
|
||||
},
|
||||
SetupRepo: func(shell *Shell) {
|
||||
shell.EmptyCommit("first commit")
|
||||
shell.RunCommand("git clone --bare . ../other_repo")
|
||||
shell.RunCommand("git submodule add ../other_repo my_submodule")
|
||||
shell.GitAddAll()
|
||||
shell.Commit("add submodule")
|
||||
},
|
||||
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
||||
t.Views().Submodules().Focus().
|
||||
Lines(
|
||||
Contains("my_submodule").IsSelected(),
|
||||
).
|
||||
// enter the submodule
|
||||
PressEnter()
|
||||
|
||||
t.Views().Files().IsFocused().
|
||||
Press("e").
|
||||
Tap(func() {
|
||||
t.Views().Commits().Content(Contains("empty commit"))
|
||||
}).
|
||||
// return to the parent repo
|
||||
PressEscape()
|
||||
|
||||
t.Views().Submodules().IsFocused()
|
||||
|
||||
// we see the new commit in the submodule is ready to be staged in the parent repo
|
||||
t.Views().Main().Content(Contains("> empty commit"))
|
||||
|
||||
t.Views().Files().Focus().
|
||||
Lines(
|
||||
MatchesRegexp(` M.*my_submodule \(submodule\)`).IsSelected(),
|
||||
).
|
||||
Tap(func() {
|
||||
// main view also shows the new commit when we're looking at the submodule within the files view
|
||||
t.Views().Main().Content(Contains("> empty commit"))
|
||||
}).
|
||||
PressPrimaryAction().
|
||||
Press(keys.Files.CommitChanges).
|
||||
Tap(func() {
|
||||
t.ExpectPopup().CommitMessagePanel().Type("submodule change").Confirm()
|
||||
}).
|
||||
IsEmpty()
|
||||
|
||||
t.Views().Submodules().Focus()
|
||||
|
||||
// we no longer report a new commit because we've committed it in the parent repo
|
||||
t.Views().Main().Content(DoesNotContain("> empty commit"))
|
||||
},
|
||||
})
|
@ -78,6 +78,7 @@ var tests = []*components.IntegrationTest{
|
||||
patch_building.BuildPatchAndCopyToClipboard,
|
||||
submodule.Add,
|
||||
submodule.Remove,
|
||||
submodule.Enter,
|
||||
}
|
||||
|
||||
func GetTests() []*components.IntegrationTest {
|
||||
|
Reference in New Issue
Block a user