jesseduffield.lazygit/pkg/integration/tests/custom_commands/menu_from_command.go
stk 0afcc3d34d Skip some more tests that don't work on Windows
It might be possible to make them work somehow, but for now I'm focusing on
getting things green as quickly as possible.
2024-01-20 18:32:39 +01:00

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"))
},
})