summaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2023-02-19 18:33:01 +1100
committerJesse Duffield <jessedduffield@gmail.com>2023-02-20 18:20:23 +1100
commitac580ae6a05d306329664047d729069d0d4679da (patch)
tree6b0207652739792cb4c1919dd9566e05974d47c2 /pkg
parent9e1e20fef2af6210e799a6bc965fc7fea62e5857 (diff)
migrate undo2
Diffstat (limited to 'pkg')
-rw-r--r--pkg/integration/tests/tests_gen.go1
-rw-r--r--pkg/integration/tests/undo/undo_checkout_and_drop.go151
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"),
+ )
+ },
+})