diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2023-02-19 18:33:01 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2023-02-20 18:20:23 +1100 |
commit | ac580ae6a05d306329664047d729069d0d4679da (patch) | |
tree | 6b0207652739792cb4c1919dd9566e05974d47c2 /pkg | |
parent | 9e1e20fef2af6210e799a6bc965fc7fea62e5857 (diff) |
migrate undo2
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/integration/tests/tests_gen.go | 1 | ||||
-rw-r--r-- | pkg/integration/tests/undo/undo_checkout_and_drop.go | 151 |
2 files changed, 152 insertions, 0 deletions
diff --git a/pkg/integration/tests/tests_gen.go b/pkg/integration/tests/tests_gen.go index 5d831900e..5c3c24cbc 100644 --- a/pkg/integration/tests/tests_gen.go +++ b/pkg/integration/tests/tests_gen.go @@ -85,5 +85,6 @@ var tests = []*components.IntegrationTest{ sync.Pull, sync.PullAndSetUpstream, sync.RenameBranchAndPull, + undo.UndoCheckoutAndDrop, undo.UndoDrop, } diff --git a/pkg/integration/tests/undo/undo_checkout_and_drop.go b/pkg/integration/tests/undo/undo_checkout_and_drop.go new file mode 100644 index 000000000..b953c2528 --- /dev/null +++ b/pkg/integration/tests/undo/undo_checkout_and_drop.go @@ -0,0 +1,151 @@ +package undo + +import ( + "github.com/jesseduffield/lazygit/pkg/config" + . "github.com/jesseduffield/lazygit/pkg/integration/components" +) + +var UndoCheckoutAndDrop = NewIntegrationTest(NewIntegrationTestArgs{ + Description: "Drop some commits and then undo/redo the actions", + ExtraCmdArgs: "", + Skip: false, + SetupConfig: func(config *config.AppConfig) {}, + SetupRepo: func(shell *Shell) { + shell.EmptyCommit("one") + shell.EmptyCommit("two") + shell.EmptyCommit("three") + shell.EmptyCommit("four") + + shell.NewBranch("other_branch") + shell.Checkout("master") + }, + Run: func(t *TestDriver, keys config.KeybindingConfig) { + // we're going to drop a commit, switch branch, drop a commit there, then undo everything, then redo everything. + + confirmCommitDrop := func() { + t.ExpectPopup().Confirmation(). + Title(Equals("Delete Commit")). + Content(Equals("Are you sure you want to delete this commit?")). + Confirm() + } + + confirmUndoDrop := func() { + t.ExpectPopup().Confirmation(). + Title(Equals("Undo")). + Content(MatchesRegexp(`Are you sure you want to hard reset to '.*'\? An auto-stash will be performed if necessary\.`)). + Confirm() + } + + confirmRedoDrop := func() { + t.ExpectPopup().Confirmation(). + Title(Equals("Redo")). + Content(MatchesRegexp(`Are you sure you want to hard reset to '.*'\? An auto-stash will be performed if necessary\.`)). + Confirm() + } + + t.Views().Commits().Focus(). + Lines( + Contains("four").IsSelected(), + Contains("three"), + Contains("two"), + Contains("one"), + ). + Press(keys.Universal.Remove). + Tap(confirmCommitDrop). + Lines( + Contains("three").IsSelected(), + Contains("two"), + Contains("one"), + ) + + t.Views().Branches().Focus(). + Lines( + Contains("master").IsSelected(), + Contains("other_branch"), + ). + SelectNextItem(). + // checkout branch + PressPrimaryAction(). + Lines( + Contains("other_branch").IsSelected(), + Contains("master"), + ) + + // drop the commit in the 'other_branch' branch too + t.Views().Commits().Focus(). + Lines( + Contains("four").IsSelected(), + Contains("three"), + Contains("two"), + Contains("one"), + ). + Press(keys.Universal.Remove). + Tap(confirmCommitDrop). + Lines( + Contains("three").IsSelected(), + Contains("two"), + Contains("one"), + ). + Press(keys.Universal.Undo). + Tap(confirmUndoDrop). + Lines( + Contains("four").IsSelected(), + Contains("three"), + Contains("two"), + Contains("one"), + ). + Press(keys.Universal.Undo). + Tap(func() { + t.ExpectPopup().Confirmation(). + Title(Equals("Undo")). + Content(Contains("Are you sure you want to checkout 'master'?")). + Confirm() + + t.Views().Branches(). + Lines( + Contains("master").IsSelected(), + Contains("other_branch"), + ) + }). + Lines( + Contains("three").IsSelected(), + Contains("two"), + Contains("one"), + ). + Press(keys.Universal.Undo). + Tap(confirmUndoDrop). + Lines( + Contains("four").IsSelected(), + Contains("three"), + Contains("two"), + Contains("one"), + ). + Press(keys.Universal.Redo). + Tap(confirmRedoDrop). + Lines( + Contains("three").IsSelected(), + Contains("two"), + Contains("one"), + ). + Press(keys.Universal.Redo). + Tap(func() { + t.ExpectPopup().Confirmation(). + Title(Equals("Redo")). + Content(Contains("Are you sure you want to checkout 'other_branch'?")). + Confirm() + + t.Views().Branches(). + Lines( + Contains("other_branch").IsSelected(), + Contains("master"), + ) + }). + Press(keys.Universal.Redo). + Tap(confirmRedoDrop). + Lines( + Contains("three").IsSelected(), + Contains("two"), + Contains("one"), + ) + }, +}) |