1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-11-23 16:22:24 +03:00

Add SelectedSubmodule to SessionState

Introduce the 'SelectedSubmodule' struct and allow using it as a
placeholder value.
Add a corresponding test.
Update the documentation to include it among the listed placeholder
values.
This commit is contained in:
rlkandela
2025-11-11 11:41:33 +01:00
committed by Stefan Haller
parent 7d1c3f7a28
commit 374f0f0766
5 changed files with 74 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
package custom_commands
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var SelectedSubmodule = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Use the {{ .SelectedSubmodule }} template variable",
ExtraCmdArgs: []string{},
Skip: false,
SetupRepo: func(shell *Shell) {
shell.EmptyCommit("Initial commit")
shell.CloneIntoSubmodule("submodule", "path/submodule")
shell.Commit("Add submodule")
},
SetupConfig: func(cfg *config.AppConfig) {
cfg.GetUserConfig().CustomCommands = []config.CustomCommand{
{
Key: "X",
Context: "submodules",
Command: "printf '%s' '{{ .SelectedSubmodule.Path }}' > file.txt",
},
{
Key: "U",
Context: "submodules",
Command: "printf '%s' '{{ .SelectedSubmodule.Url }}' > file.txt",
},
{
Key: "N",
Context: "submodules",
Command: "printf '%s' '{{ .SelectedSubmodule.Name }}' > file.txt",
},
}
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
t.Views().Submodules().
Focus().
Lines(
Contains("submodule").IsSelected(),
)
t.Views().Submodules().Press("X")
t.FileSystem().FileContent("file.txt", Equals("path/submodule"))
t.Views().Submodules().Press("U")
t.FileSystem().FileContent("file.txt", Equals("../submodule"))
t.Views().Submodules().Press("N")
t.FileSystem().FileContent("file.txt", Equals("submodule"))
},
})