diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2023-07-24 21:32:02 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2023-07-30 18:35:23 +1000 |
commit | 9c15ba0c0bda6a752ae93d04d3365ae25d992391 (patch) | |
tree | 5d8f5a061b0bf14b17a74eda873d456776c6c5f7 | |
parent | b3060065d9a776c755903a1297ab3954c01853a8 (diff) |
Add test for retained context focus when switching worktrees
-rw-r--r-- | pkg/integration/tests/test_list.go | 1 | ||||
-rw-r--r-- | pkg/integration/tests/worktree/retained_window_focus.go | 45 |
2 files changed, 46 insertions, 0 deletions
diff --git a/pkg/integration/tests/test_list.go b/pkg/integration/tests/test_list.go index 981f705e2..4060f1368 100644 --- a/pkg/integration/tests/test_list.go +++ b/pkg/integration/tests/test_list.go @@ -231,5 +231,6 @@ var tests = []*components.IntegrationTest{ worktree.ForceRemoveWorktree, worktree.Rebase, worktree.RemoveWorktreeFromBranch, + worktree.RetainedWindowFocus, worktree.WorktreeInRepo, } diff --git a/pkg/integration/tests/worktree/retained_window_focus.go b/pkg/integration/tests/worktree/retained_window_focus.go new file mode 100644 index 000000000..d518d6d1a --- /dev/null +++ b/pkg/integration/tests/worktree/retained_window_focus.go @@ -0,0 +1,45 @@ +package worktree + +import ( + "github.com/jesseduffield/lazygit/pkg/config" + . "github.com/jesseduffield/lazygit/pkg/integration/components" +) + +var RetainedWindowFocus = NewIntegrationTest(NewIntegrationTestArgs{ + Description: "Verify that the focused context in each window is retained when switching worktrees", + ExtraCmdArgs: []string{}, + Skip: false, + SetupConfig: func(config *config.AppConfig) {}, + SetupRepo: func(shell *Shell) { + shell.NewBranch("mybranch") + shell.CreateFileAndAdd("README.md", "hello world") + shell.Commit("initial commit") + shell.EmptyCommit("commit 2") + shell.EmptyCommit("commit 3") + shell.AddWorktree("mybranch", "../linked-worktree", "newbranch") + shell.AddFileInWorktree("../linked-worktree") + }, + Run: func(t *TestDriver, keys config.KeybindingConfig) { + // focus the remotes tab i.e. the second tab in the branches window + t.Views().Remotes(). + Focus() + + t.Views().Worktrees(). + Focus(). + Lines( + Contains("repo (main)").IsSelected(), + Contains("linked-worktree"), + ). + NavigateToLine(Contains("linked-worktree")). + Press(keys.Universal.Select). + Lines( + Contains("linked-worktree").IsSelected(), + Contains("repo (main)"), + ). + // navigate back to the branches window + Press(keys.Universal.NextBlock) + + t.Views().Remotes(). + IsFocused() + }, +}) |