From 9c15ba0c0bda6a752ae93d04d3365ae25d992391 Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Mon, 24 Jul 2023 21:32:02 +1000 Subject: Add test for retained context focus when switching worktrees --- .../tests/worktree/retained_window_focus.go | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 pkg/integration/tests/worktree/retained_window_focus.go (limited to 'pkg/integration/tests/worktree') 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() + }, +}) -- cgit v1.2.3