summaryrefslogtreecommitdiffstats
path: root/pkg/integration
diff options
context:
space:
mode:
authorRed S <redstreet@users.noreply.github.com>2023-07-16 08:57:02 +0000
committerJesse Duffield <jessedduffield@gmail.com>2023-07-29 19:09:59 +1000
commitd7f84aed8a228fa6316803b5e766886e7aa96647 (patch)
treeff08137964e8ba7dcdcbc42b2113c15c756b8f53 /pkg/integration
parent7e9f66942119d8ce6b00fee61554f7947d2d5f56 (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.go44
-rw-r--r--pkg/integration/tests/patch_building/copy_patch_to_clipboard.go49
-rw-r--r--pkg/integration/tests/test_list.go2
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,