mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-09-14 01:26:24 -04:00
It might be possible to make them work somehow, but for now I'm focusing on getting things green as quickly as possible.
68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
package custom_commands
|
|
|
|
import (
|
|
"runtime"
|
|
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
// NOTE: we're getting a weird offset in the popup prompt for some reason. Not sure what's behind that.
|
|
|
|
var MenuFromCommand = NewIntegrationTest(NewIntegrationTestArgs{
|
|
Description: "Using menuFromCommand prompt type",
|
|
ExtraCmdArgs: []string{},
|
|
Skip: runtime.GOOS == "windows",
|
|
SetupRepo: func(shell *Shell) {
|
|
shell.
|
|
EmptyCommit("foo").
|
|
EmptyCommit("bar").
|
|
EmptyCommit("baz").
|
|
NewBranch("feature/foo")
|
|
},
|
|
SetupConfig: func(cfg *config.AppConfig) {
|
|
cfg.UserConfig.CustomCommands = []config.CustomCommand{
|
|
{
|
|
Key: "a",
|
|
Context: "localBranches",
|
|
Command: `echo "{{index .PromptResponses 0}} {{index .PromptResponses 1}} {{ .SelectedLocalBranch.Name }}" > output.txt`,
|
|
Prompts: []config.CustomCommandPrompt{
|
|
{
|
|
Type: "menuFromCommand",
|
|
Title: "Choose commit message",
|
|
Command: `git log --oneline --pretty=%B`,
|
|
Filter: `(?P<commit_message>.*)`,
|
|
ValueFormat: `{{ .commit_message }}`,
|
|
LabelFormat: `{{ .commit_message | yellow }}`,
|
|
},
|
|
{
|
|
Type: "input",
|
|
Title: "Description",
|
|
InitialValue: `{{ if .SelectedLocalBranch.Name }}Branch: #{{ .SelectedLocalBranch.Name }}{{end}}`,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
},
|
|
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
|
t.Views().Files().
|
|
IsEmpty()
|
|
|
|
t.Views().Branches().
|
|
Focus().
|
|
Press("a")
|
|
|
|
t.ExpectPopup().Menu().Title(Equals("Choose commit message")).Select(Contains("bar")).Confirm()
|
|
|
|
t.ExpectPopup().Prompt().Title(Equals("Description")).Type(" my branch").Confirm()
|
|
|
|
t.Views().Files().
|
|
Focus().
|
|
Lines(
|
|
Contains("output.txt").IsSelected(),
|
|
)
|
|
|
|
t.Views().Main().Content(Contains("bar Branch: #feature/foo my branch feature/foo"))
|
|
},
|
|
})
|