1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-10-14 22:08:10 +03:00
Files
lazygit/pkg/integration/tests/conflicts/merge_file_incoming.go
Krystof Gartner 703f053a7e Add merge options menu
Replace merge-tool with merge options menu that allows resolving all
conflicts for selected files as ours, theirs, or union, while still
providing access to the merge tool.
2025-10-09 08:45:58 +02:00

77 lines
1.4 KiB
Go

package conflicts
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
"github.com/jesseduffield/lazygit/pkg/integration/tests/shared"
)
func testDataIncoming() (original, current, incoming, final string) {
original = `
1
2
3
4
5
6
`
current = `
1a
2
3
4
5a
6
`
incoming = `
1
2
3
4
5b
6
`
final = `
1a
2
3
4
5b
6
`
return original, current, incoming, final
}
var MergeFileIncoming = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Conflicting file can be resolved to 'theirs' (incoming changes) version via merge-file",
ExtraCmdArgs: []string{},
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
original, current, incoming, _ := testDataIncoming()
shared.CreateMergeConflictFileForMergeFileTests(shell, original, current, incoming)
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
_, _, _, expected := testDataIncoming()
t.Views().Files().
IsFocused().
Lines(
Contains("file").IsSelected(),
)
t.GlobalPress(keys.Files.OpenMergeOptions)
t.ExpectPopup().Menu().
Title(Equals("Resolve merge conflicts")).
Select(Contains("Use incoming changes")). // merge-file --theirs
Confirm()
t.Common().ContinueOnConflictsResolved("merge")
t.Views().Files().IsEmpty()
t.FileSystem().FileContent("file", Equals(expected))
},
})