mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-01-16 17:11:46 +08:00
We move the selection down by the number of commits that were reverted (to keep the same commits selected). However, this only happens after refreshing, which has rendered the main view with the wrong commit, so we need to render it again after moving the selection. There are many other callers of MoveSelection in LocalCommitsController, but all of them happen before the refresh. Revert is special because it needs to move the selection after refreshing, e.g. when reverting the only commit of a branch.
44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package commit
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
var Revert = NewIntegrationTest(NewIntegrationTestArgs{
|
|
Description: "Reverts a commit",
|
|
ExtraCmdArgs: []string{},
|
|
Skip: false,
|
|
SetupConfig: func(config *config.AppConfig) {},
|
|
SetupRepo: func(shell *Shell) {
|
|
shell.CreateFile("myfile", "myfile content")
|
|
shell.GitAddAll()
|
|
shell.Commit("first commit")
|
|
},
|
|
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
|
t.Views().Commits().
|
|
Focus().
|
|
Lines(
|
|
Contains("first commit"),
|
|
).
|
|
Press(keys.Commits.RevertCommit).
|
|
Tap(func() {
|
|
t.ExpectPopup().Confirmation().
|
|
Title(Equals("Revert commit")).
|
|
Content(MatchesRegexp(`Are you sure you want to revert \w+?`)).
|
|
Confirm()
|
|
}).
|
|
Lines(
|
|
Contains("Revert \"first commit\""),
|
|
Contains("first commit").IsSelected(),
|
|
).
|
|
Tap(func() {
|
|
t.Views().Main().Content(Contains("+myfile content"))
|
|
}).
|
|
SelectPreviousItem()
|
|
|
|
t.Views().Main().Content(Contains("-myfile content"))
|
|
t.FileSystem().PathNotPresent("myfile")
|
|
},
|
|
})
|