mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-19 17:02:18 +03:00
Add verify flag Add and update integration tests Rename verify to forceSkipHooks Adapt CommitSkipHooks integration test to actually use a hook Remove forceSkipHooks param from OnConfirm et al Simplify tests
110 lines
2.7 KiB
Go
110 lines
2.7 KiB
Go
package commit
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
func setupForAmendTests(shell *Shell) {
|
|
shell.EmptyCommit("base commit")
|
|
shell.NewBranch("branch")
|
|
shell.Checkout("master")
|
|
shell.CreateFileAndAdd("file1", "master")
|
|
shell.Commit("file1 changed in master")
|
|
shell.Checkout("branch")
|
|
shell.UpdateFileAndAdd("file2", "two")
|
|
shell.Commit("commit two")
|
|
shell.CreateFileAndAdd("file1", "branch")
|
|
shell.Commit("file1 changed in branch")
|
|
shell.UpdateFileAndAdd("file3", "three")
|
|
shell.Commit("commit three")
|
|
}
|
|
|
|
func doTheRebaseForAmendTests(t *TestDriver, keys config.KeybindingConfig) {
|
|
t.Views().Commits().
|
|
Focus().
|
|
Lines(
|
|
Contains("commit three").IsSelected(),
|
|
Contains("file1 changed in branch"),
|
|
Contains("commit two"),
|
|
Contains("base commit"),
|
|
)
|
|
t.Views().Branches().
|
|
Focus().
|
|
NavigateToLine(Contains("master")).
|
|
Press(keys.Branches.RebaseBranch).
|
|
Tap(func() {
|
|
t.ExpectPopup().Menu().
|
|
Title(Equals("Rebase 'branch'")).
|
|
Select(Contains("Simple rebase")).
|
|
Confirm()
|
|
t.Common().AcknowledgeConflicts()
|
|
})
|
|
|
|
t.Views().Commits().
|
|
Lines(
|
|
Contains("pick").Contains("commit three"),
|
|
Contains("conflict").Contains("<-- YOU ARE HERE --- file1 changed in branch"),
|
|
Contains("commit two"),
|
|
Contains("file1 changed in master"),
|
|
Contains("base commit"),
|
|
)
|
|
|
|
t.Views().Files().
|
|
Focus().
|
|
PressEnter()
|
|
|
|
t.Views().MergeConflicts().
|
|
IsFocused().
|
|
SelectNextItem(). // choose "incoming"
|
|
PressPrimaryAction()
|
|
|
|
t.ExpectPopup().Confirmation().
|
|
Title(Equals("Continue")).
|
|
Content(Contains("All merge conflicts resolved. Continue?")).
|
|
Cancel()
|
|
}
|
|
|
|
func checkCommitContainsChange(t *TestDriver, commitSubject string, change string) {
|
|
t.Views().Commits().
|
|
Focus().
|
|
NavigateToLine(Contains(commitSubject))
|
|
t.Views().Main().
|
|
Content(Contains(change))
|
|
}
|
|
|
|
func checkBlockingHook(t *TestDriver, keys config.KeybindingConfig) {
|
|
// Shared function for tests using the blockingHook pre-commit hook for testing hook skipping
|
|
// Stage first file
|
|
t.Views().Files().
|
|
IsFocused().
|
|
PressPrimaryAction().
|
|
Press(keys.Files.CommitChanges)
|
|
|
|
// Try to commit with hook
|
|
t.ExpectPopup().CommitMessagePanel().
|
|
Title(Equals("Commit summary")).
|
|
Type("Commit should fail").
|
|
Confirm()
|
|
|
|
t.ExpectPopup().Alert().
|
|
Title(Equals("Error")).
|
|
Content(Contains("Git command failed.")).
|
|
Confirm()
|
|
|
|
// Clear the message
|
|
t.Views().Files().
|
|
IsFocused().
|
|
Press(keys.Files.CommitChanges)
|
|
|
|
t.ExpectPopup().CommitMessagePanel().
|
|
Title(Equals("Commit summary")).
|
|
Clear().
|
|
Cancel()
|
|
|
|
// Unstage the file
|
|
t.Views().Files().
|
|
IsFocused().
|
|
PressPrimaryAction()
|
|
}
|