diff options
author | stk <stk@ableton.com> | 2023-02-09 17:29:09 +0100 |
---|---|---|
committer | stk <stk@ableton.com> | 2023-02-09 17:35:20 +0100 |
commit | e357c00d4d17931f04f4941bf5e1af0274f34d68 (patch) | |
tree | 37a5384c51315409cf7f00dfb95a11146a61e11c /pkg/integration/tests/branch/rebase_does_not_autosquash.go | |
parent | c713d19383f21b1a9bc87a38b3606c44cdd398b6 (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.go | 56 |
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"), + ) + }, +}) |