mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-08-28 02:24:49 -05:00
Change clipboard tests to demonstrate bug with copying absolute file path
Change the tests so that they run in a linked worktree; this uncovers the bug that copying a file's absolute path uses the main repo path rather than the worktree's path.
This commit is contained in:
@@ -2,6 +2,7 @@ package diff
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/jesseduffield/lazygit/pkg/config"
|
||||
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
||||
@@ -22,6 +23,12 @@ var CopyToClipboard = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
config.GetUserConfig().OS.CopyToClipboardCmd = "printf '%s' {{text}} > clipboard"
|
||||
},
|
||||
SetupRepo: func(shell *Shell) {
|
||||
// Run the test in a linked worktree so that we catch bugs where we
|
||||
// use the main repo's path instead of the current worktree's path.
|
||||
shell.EmptyCommit("initial commit")
|
||||
shell.AddWorktree("HEAD", "../linked-worktree", "mybranch")
|
||||
shell.Chdir("../linked-worktree")
|
||||
|
||||
shell.CreateDir("dir")
|
||||
shell.CreateFileAndAdd("dir/file1", "1st line\n")
|
||||
shell.Commit("1")
|
||||
@@ -38,6 +45,7 @@ var CopyToClipboard = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
Contains("3").IsSelected(),
|
||||
Contains("2"),
|
||||
Contains("1"),
|
||||
Contains("initial commit"),
|
||||
).
|
||||
SelectNextItem().
|
||||
PressEnter()
|
||||
@@ -80,9 +88,12 @@ var CopyToClipboard = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
Confirm().
|
||||
Tap(func() {
|
||||
t.ExpectToast(Equals("File path copied to clipboard"))
|
||||
repoDir, _ := os.Getwd()
|
||||
worktreeDir, _ := os.Getwd()
|
||||
// On windows the following path would have backslashes, but we don't run integration tests on windows yet.
|
||||
expectClipboard(t, Equals(repoDir+"/dir/file1"))
|
||||
/* EXPECTED:
|
||||
expectClipboard(t, Equals(worktreeDir+"/dir/file1"))
|
||||
ACTUAL: */
|
||||
expectClipboard(t, Equals(filepath.Dir(worktreeDir)+"/repo/dir/file1"))
|
||||
})
|
||||
}).
|
||||
Press(keys.Files.CopyFileInfoToClipboard).
|
||||
|
||||
@@ -2,6 +2,7 @@ package file
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/jesseduffield/lazygit/pkg/config"
|
||||
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
||||
@@ -21,7 +22,13 @@ var CopyMenu = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
SetupConfig: func(config *config.AppConfig) {
|
||||
config.GetUserConfig().OS.CopyToClipboardCmd = "printf '%s' {{text}} > clipboard"
|
||||
},
|
||||
SetupRepo: func(shell *Shell) {},
|
||||
SetupRepo: func(shell *Shell) {
|
||||
// Run the test in a linked worktree so that we catch bugs where we
|
||||
// use the main repo's path instead of the current worktree's path.
|
||||
shell.EmptyCommit("initial commit")
|
||||
shell.AddWorktree("HEAD", "../linked-worktree", "mybranch")
|
||||
shell.Chdir("../linked-worktree")
|
||||
},
|
||||
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
||||
// Disabled item
|
||||
t.Views().Files().
|
||||
@@ -130,9 +137,12 @@ var CopyMenu = NewIntegrationTest(NewIntegrationTestArgs{
|
||||
|
||||
t.ExpectToast(Equals("File path copied to clipboard"))
|
||||
|
||||
repoDir, _ := os.Getwd()
|
||||
worktreeDir, _ := os.Getwd()
|
||||
// On windows the following path would have backslashes, but we don't run integration tests on windows yet.
|
||||
expectClipboard(t, Equals(repoDir+"/dir/1-unstaged_file"))
|
||||
/* EXPECTED:
|
||||
expectClipboard(t, Equals(worktreeDir+"/dir/1-unstaged_file"))
|
||||
ACTUAL: */
|
||||
expectClipboard(t, Equals(filepath.Dir(worktreeDir)+"/repo/dir/1-unstaged_file"))
|
||||
})
|
||||
|
||||
// Selected path diff on a single (unstaged) file
|
||||
|
||||
Reference in New Issue
Block a user