diff options
author | Red S <redstreet@users.noreply.github.com> | 2023-07-16 08:57:02 +0000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2023-07-29 19:09:59 +1000 |
commit | d7f84aed8a228fa6316803b5e766886e7aa96647 (patch) | |
tree | ff08137964e8ba7dcdcbc42b2113c15c756b8f53 /pkg/integration | |
parent | 7e9f66942119d8ce6b00fee61554f7947d2d5f56 (diff) |
feat: add os.copyToClipboardCmd to allow for a custom command
Issue #1055
test: CopyPatchToClipboard (temporary commit for review)
Diffstat (limited to 'pkg/integration')
-rw-r--r-- | pkg/integration/tests/misc/copy_to_clipboard.go | 44 | ||||
-rw-r--r-- | pkg/integration/tests/patch_building/copy_patch_to_clipboard.go | 49 | ||||
-rw-r--r-- | pkg/integration/tests/test_list.go | 2 |
3 files changed, 45 insertions, 50 deletions
diff --git a/pkg/integration/tests/misc/copy_to_clipboard.go b/pkg/integration/tests/misc/copy_to_clipboard.go new file mode 100644 index 000000000..48fae8136 --- /dev/null +++ b/pkg/integration/tests/misc/copy_to_clipboard.go @@ -0,0 +1,44 @@ +package misc + +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 CopyToClipboard = NewIntegrationTest(NewIntegrationTestArgs{ + Description: "Copy a branch name to the clipboard using custom clipboard command template", + ExtraCmdArgs: []string{}, + Skip: false, + SetupConfig: func(config *config.AppConfig) { + config.UserConfig.OS.CopyToClipboardCmd = "echo {{text}} > clipboard" + }, + + SetupRepo: func(shell *Shell) { + shell.NewBranch("branch-a") + }, + + Run: func(t *TestDriver, keys config.KeybindingConfig) { + t.Views().Branches(). + Focus(). + Lines( + Contains("branch-a").IsSelected(), + ). + Press(keys.Universal.CopyToClipboard) + + t.Views().Files(). + Focus() + + t.GlobalPress(keys.Files.RefreshFiles) + + // Expect to see the clipboard file with contents + t.Views().Files(). + IsFocused(). + Lines( + Contains("clipboard").IsSelected(), + ) + + t.Views().Main().Content(Contains("branch-a")) + }, +}) diff --git a/pkg/integration/tests/patch_building/copy_patch_to_clipboard.go b/pkg/integration/tests/patch_building/copy_patch_to_clipboard.go deleted file mode 100644 index 18c0cae09..000000000 --- a/pkg/integration/tests/patch_building/copy_patch_to_clipboard.go +++ /dev/null @@ -1,49 +0,0 @@ -package patch_building - -import ( - "github.com/jesseduffield/lazygit/pkg/config" - . "github.com/jesseduffield/lazygit/pkg/integration/components" -) - -var CopyPatchToClipboard = NewIntegrationTest(NewIntegrationTestArgs{ - Description: "Create a patch from the commits and copy the patch to clipbaord.", - ExtraCmdArgs: []string{}, - Skip: true, // skipping because CI doesn't have clipboard functionality - SetupConfig: func(config *config.AppConfig) {}, - SetupRepo: func(shell *Shell) { - shell.NewBranch("branch-a") - shell.CreateFileAndAdd("file1", "first line\n") - shell.Commit("first commit") - - shell.NewBranch("branch-b") - shell.UpdateFileAndAdd("file1", "first line\nsecond line\n") - shell.Commit("update") - - shell.Checkout("branch-a") - }, - Run: func(t *TestDriver, keys config.KeybindingConfig) { - t.Views().Branches(). - Focus(). - Lines( - Contains("branch-a").IsSelected(), - Contains("branch-b"), - ). - Press(keys.Universal.NextItem). - PressEnter(). - PressEnter() - t.Views(). - CommitFiles(). - Lines( - Contains("M file1").IsSelected(), - ). - PressPrimaryAction() - - t.Views().Information().Content(Contains("Building patch")) - - t.Common().SelectPatchOption(Contains("copy patch to clipboard")) - - t.ExpectToast(Contains("Patch copied to clipboard")) - - t.ExpectClipboard(Contains("diff --git a/file1 b/file1")) - }, -}) diff --git a/pkg/integration/tests/test_list.go b/pkg/integration/tests/test_list.go index af0ac1c5b..60b8376f6 100644 --- a/pkg/integration/tests/test_list.go +++ b/pkg/integration/tests/test_list.go @@ -137,12 +137,12 @@ var tests = []*components.IntegrationTest{ interactive_rebase.SwapInRebaseWithConflictAndEdit, interactive_rebase.SwapWithConflict, misc.ConfirmOnQuit, + misc.CopyToClipboard, misc.InitialOpen, misc.RecentReposOnLaunch, patch_building.Apply, patch_building.ApplyInReverse, patch_building.ApplyInReverseWithConflict, - patch_building.CopyPatchToClipboard, patch_building.MoveToEarlierCommit, patch_building.MoveToEarlierCommitNoKeepEmpty, patch_building.MoveToIndex, |