mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-21 12:16:54 +02:00
SelectedCommit is context-dependent and points to SelectedLocalCommit, SelectedReflogCommit, or SelectedSubCommit depending on which panel is active. If none of these panels is active, it returns the selected local commit, which is probably the most useful default (e.g. when defining custom commands for the Files panel).
68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
package custom_commands
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
var SelectedCommit = NewIntegrationTest(NewIntegrationTestArgs{
|
|
Description: "Use the {{ .SelectedCommit }} template variable in different contexts",
|
|
ExtraCmdArgs: []string{},
|
|
Skip: false,
|
|
SetupRepo: func(shell *Shell) {
|
|
shell.CreateNCommits(3)
|
|
},
|
|
SetupConfig: func(cfg *config.AppConfig) {
|
|
cfg.UserConfig.CustomCommands = []config.CustomCommand{
|
|
{
|
|
Key: "X",
|
|
Context: "global",
|
|
Command: "printf '%s' '{{ .SelectedCommit.Name }}' > file.txt",
|
|
},
|
|
}
|
|
},
|
|
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
|
// Select different commits in each of the commit views
|
|
t.Views().Commits().Focus().
|
|
NavigateToLine(Contains("commit 01"))
|
|
t.Views().ReflogCommits().Focus().
|
|
NavigateToLine(Contains("commit 02"))
|
|
t.Views().Branches().Focus().
|
|
Lines(Contains("master").IsSelected()).
|
|
PressEnter()
|
|
t.Views().SubCommits().IsFocused().
|
|
NavigateToLine(Contains("commit 03"))
|
|
|
|
// SubCommits
|
|
t.GlobalPress("X")
|
|
t.FileSystem().FileContent("file.txt", Equals("commit 03"))
|
|
|
|
t.Views().SubCommits().PressEnter()
|
|
t.GlobalPress("X")
|
|
t.FileSystem().FileContent("file.txt", Equals("commit 03"))
|
|
|
|
// ReflogCommits
|
|
t.Views().ReflogCommits().Focus()
|
|
t.GlobalPress("X")
|
|
t.FileSystem().FileContent("file.txt", Equals("commit: commit 02"))
|
|
|
|
t.Views().ReflogCommits().PressEnter()
|
|
t.GlobalPress("X")
|
|
t.FileSystem().FileContent("file.txt", Equals("commit: commit 02"))
|
|
|
|
// LocalCommits
|
|
t.Views().Commits().Focus()
|
|
t.GlobalPress("X")
|
|
t.FileSystem().FileContent("file.txt", Equals("commit 01"))
|
|
|
|
t.Views().Commits().PressEnter()
|
|
t.GlobalPress("X")
|
|
t.FileSystem().FileContent("file.txt", Equals("commit 01"))
|
|
|
|
// None of these
|
|
t.Views().Files().Focus()
|
|
t.GlobalPress("X")
|
|
t.FileSystem().FileContent("file.txt", Equals("commit 01"))
|
|
},
|
|
})
|