summaryrefslogtreecommitdiffstats
path: root/pkg/integration/tests/branch/rebase_does_not_autosquash.go
diff options
context:
space:
mode:
authorstk <stk@ableton.com>2023-02-09 17:29:09 +0100
committerstk <stk@ableton.com>2023-02-09 17:35:20 +0100
commite357c00d4d17931f04f4941bf5e1af0274f34d68 (patch)
tree37a5384c51315409cf7f00dfb95a11146a61e11c /pkg/integration/tests/branch/rebase_does_not_autosquash.go
parentc713d19383f21b1a9bc87a38b3606c44cdd398b6 (diff)
Add an integration test showing a problem with autosquash during normal rebase
For users who have the rebase.autoSquash git config set to true, any regular rebase will squash fixups in addition to rebasing. Not good -- we'll fix that in the next commit.
Diffstat (limited to 'pkg/integration/tests/branch/rebase_does_not_autosquash.go')
-rw-r--r--pkg/integration/tests/branch/rebase_does_not_autosquash.go56
1 files changed, 56 insertions, 0 deletions
diff --git a/pkg/integration/tests/branch/rebase_does_not_autosquash.go b/pkg/integration/tests/branch/rebase_does_not_autosquash.go
new file mode 100644
index 000000000..34b58e1d8
--- /dev/null
+++ b/pkg/integration/tests/branch/rebase_does_not_autosquash.go
@@ -0,0 +1,56 @@
+package branch
+
+import (
+ "github.com/jesseduffield/lazygit/pkg/config"
+ . "github.com/jesseduffield/lazygit/pkg/integration/components"
+)
+
+var RebaseDoesNotAutosquash = NewIntegrationTest(NewIntegrationTestArgs{
+ Description: "Rebase a branch that has fixups onto another branch, and verify that the fixups are not squashed even if rebase.autoSquash is enabled globally.",
+ ExtraCmdArgs: "",
+ Skip: false,
+ SetupConfig: func(config *config.AppConfig) {},
+ SetupRepo: func(shell *Shell) {
+ shell.SetConfig("rebase.autoSquash", "true")
+
+ shell.
+ EmptyCommit("base").
+ NewBranch("my-branch").
+ Checkout("master").
+ EmptyCommit("master commit").
+ Checkout("my-branch").
+ EmptyCommit("branch commit").
+ EmptyCommit("fixup! branch commit")
+ },
+ Run: func(t *TestDriver, keys config.KeybindingConfig) {
+ t.Views().Commits().
+ Lines(
+ Contains("fixup! branch commit"),
+ Contains("branch commit"),
+ Contains("base"),
+ )
+
+ t.Views().Branches().
+ Focus().
+ Lines(
+ Contains("my-branch").IsSelected(),
+ Contains("master"),
+ ).
+ SelectNextItem().
+ Press(keys.Branches.RebaseBranch)
+
+ t.ExpectPopup().Confirmation().
+ Title(Equals("Rebasing")).
+ Content(Contains("Are you sure you want to rebase 'my-branch' on top of 'master'?")).
+ Confirm()
+
+ t.Views().Commits().Lines(
+ /* Expected the fixup to be kept, but it's gone:
+ Contains("fixup! branch commit"),
+ */
+ Contains("branch commit"),
+ Contains("master commit"),
+ Contains("base"),
+ )
+ },
+})