1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2024-12-12 11:15:00 +02:00
lazygit/pkg/integration/tests/undo/undo_checkout_and_drop.go
Jesse Duffield d772c9f1d4 Use sentence case everywhere
We have not been good at consistent casing so far. Now we use 'Sentence case' everywhere. EVERYWHERE.

Also Removing 'Lc' prefix from i18n field names: the 'Lc' stood for lowercase but now that everything
is in 'Sentence case' there's no need for the distinction.

I've got a couple lower case things I've kept: namely, things that show up in parentheses.
2023-05-25 23:52:19 +10:00

152 lines
3.6 KiB
Go

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: []string{},
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"),
)
},
})