diff --git a/pkg/commands/git_commands/commit.go b/pkg/commands/git_commands/commit.go index 45582c6bd5f..52a65fb6dbd 100644 --- a/pkg/commands/git_commands/commit.go +++ b/pkg/commands/git_commands/commit.go @@ -189,7 +189,7 @@ type Author struct { func (self *CommitCommands) GetCommitAuthor(commitHash string) (Author, error) { cmdArgs := NewGitCmd("show"). - Arg("--no-patch", "--pretty=format:'%an%x00%ae'", commitHash). + Arg("--no-patch", "--pretty=format:%an%x00%ae", commitHash). ToArgv() output, err := self.cmd.New(cmdArgs).DontLog().RunWithOutput() diff --git a/pkg/integration/tests/commit/copy_author_to_clipboard.go b/pkg/integration/tests/commit/copy_author_to_clipboard.go new file mode 100644 index 00000000000..9e182265f27 --- /dev/null +++ b/pkg/integration/tests/commit/copy_author_to_clipboard.go @@ -0,0 +1,48 @@ +package commit + +import ( + "github.com/jesseduffield/lazygit/pkg/config" + . "github.com/jesseduffield/lazygit/pkg/integration/components" +) + +// We're emulating the clipboard by writing to a file called clipboard + +var CopyAuthorToClipboard = NewIntegrationTest(NewIntegrationTestArgs{ + Description: "Copy a commit author name to the clipboard", + ExtraCmdArgs: []string{}, + Skip: false, + SetupConfig: func(config *config.AppConfig) { + // Include delimiters around the text so that we can assert on the entire content + config.GetUserConfig().OS.CopyToClipboardCmd = "echo /{{text}}/ > clipboard" + }, + + SetupRepo: func(shell *Shell) { + shell.SetAuthor("John Doe", "john@doe.com") + shell.EmptyCommit("commit") + }, + + Run: func(t *TestDriver, keys config.KeybindingConfig) { + t.Views().Commits(). + Focus(). + Lines( + Contains("commit").IsSelected(), + ). + Press(keys.Commits.CopyCommitAttributeToClipboard) + + t.ExpectPopup().Menu(). + Title(Equals("Copy to clipboard")). + Select(Contains("Commit author")). + Confirm() + + t.ExpectToast(Equals("Commit author copied to clipboard")) + + t.Views().Files(). + Focus(). + Press(keys.Files.RefreshFiles). + Lines( + Contains("clipboard").IsSelected(), + ) + + t.Views().Main().Content(Contains("/John Doe /")) + }, +}) diff --git a/pkg/integration/tests/test_list.go b/pkg/integration/tests/test_list.go index db79247ffea..281b0a2b3db 100644 --- a/pkg/integration/tests/test_list.go +++ b/pkg/integration/tests/test_list.go @@ -87,6 +87,7 @@ var tests = []*components.IntegrationTest{ commit.CommitWithGlobalPrefix, commit.CommitWithNonMatchingBranchName, commit.CommitWithPrefix, + commit.CopyAuthorToClipboard, commit.CreateAmendCommit, commit.CreateFixupCommitInBranchStack, commit.CreateTag,