diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2023-08-07 22:48:14 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-07 22:48:14 +1000 |
commit | 579791e7bc8261e9ed578f882f4b8b11a486bf78 (patch) | |
tree | 7eae43fd38f1888bd01c126c33f78fbc4b445cec /pkg/integration/tests/worktree/dotfile_bare_repo.go | |
parent | ecaf1e900242931ff4098986e0720eca15a8398a (diff) | |
parent | 595e28d335c9874eb56f7de61a85586567cd8f8c (diff) |
Fix opening lazygit in a bare repo with specified worktree (#2902)v0.40.1
Diffstat (limited to 'pkg/integration/tests/worktree/dotfile_bare_repo.go')
-rw-r--r-- | pkg/integration/tests/worktree/dotfile_bare_repo.go | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/pkg/integration/tests/worktree/dotfile_bare_repo.go b/pkg/integration/tests/worktree/dotfile_bare_repo.go new file mode 100644 index 000000000..86b2a0fb4 --- /dev/null +++ b/pkg/integration/tests/worktree/dotfile_bare_repo.go @@ -0,0 +1,74 @@ +package worktree + +import ( + "github.com/jesseduffield/lazygit/pkg/config" + . "github.com/jesseduffield/lazygit/pkg/integration/components" +) + +// Can't think of a better name than 'dotfile' repo: I'm using that +// because that's the case we're typically dealing with. + +var DotfileBareRepo = NewIntegrationTest(NewIntegrationTestArgs{ + Description: "Open lazygit in the worktree of a dotfile bare repo and add a file and commit", + ExtraCmdArgs: []string{"--git-dir={{.actualPath}}/.bare", "--work-tree={{.actualPath}}/repo"}, + Skip: false, + // passing this because we're explicitly passing --git-dir and --work-tree args + UseCustomPath: true, + SetupConfig: func(config *config.AppConfig) {}, + SetupRepo: func(shell *Shell) { + // we're going to have a directory structure like this: + // project + // - .bare + // - repo (the worktree) + // + // The first repo is called 'repo' because that's the + // directory that all lazygit tests start in + + // Delete the .git dir that all tests start with by default + shell.DeleteFile(".git") + + // Create a bare repo in the parent directory + shell.RunCommand([]string{"git", "init", "--bare", "../.bare"}) + shell.RunCommand([]string{"git", "--git-dir=../.bare", "--work-tree=.", "checkout", "-b", "mybranch"}) + shell.CreateFile("blah", "original content\n") + + // Add a file and commit + shell.RunCommand([]string{"git", "--git-dir=../.bare", "--work-tree=.", "add", "blah"}) + shell.RunCommand([]string{"git", "--git-dir=../.bare", "--work-tree=.", "commit", "-m", "initial commit"}) + + shell.UpdateFile("blah", "updated content\n") + }, + Run: func(t *TestDriver, keys config.KeybindingConfig) { + t.Views().Branches(). + Lines( + Contains("mybranch"), + ) + + t.Views().Commits(). + Lines( + Contains("initial commit"), + ) + + t.Views().Files(). + IsFocused(). + Lines( + Contains(" M blah"), // shows as modified + ). + PressPrimaryAction(). + Press(keys.Files.CommitChanges) + + t.ExpectPopup().CommitMessagePanel(). + Title(Equals("Commit summary")). + Type("Add blah"). + Confirm() + + t.Views().Files(). + IsEmpty() + + t.Views().Commits(). + Lines( + Contains("Add blah"), + Contains("initial commit"), + ) + }, +}) |