mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-12-12 11:15:00 +02:00
62ab41c310
It seems that older git versions would drop empty commits when rebasing. Since this aspect is not relevant to what we're testing here, fix this by simply avoiding empty commits in these tests.
106 lines
2.5 KiB
Go
106 lines
2.5 KiB
Go
package sync
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
var PullRebaseInteractiveConflictDrop = NewIntegrationTest(NewIntegrationTestArgs{
|
|
Description: "Pull with an interactive rebase strategy, where a conflict occurs. Also drop a commit while rebasing",
|
|
ExtraCmdArgs: []string{},
|
|
Skip: false,
|
|
SetupConfig: func(config *config.AppConfig) {},
|
|
SetupRepo: func(shell *Shell) {
|
|
shell.CreateFileAndAdd("file", "content1")
|
|
shell.Commit("one")
|
|
shell.UpdateFileAndAdd("file", "content2")
|
|
shell.Commit("two")
|
|
shell.CreateFileAndAdd("file3", "content3")
|
|
shell.Commit("three")
|
|
|
|
shell.CloneIntoRemote("origin")
|
|
|
|
shell.SetBranchUpstream("master", "origin/master")
|
|
|
|
shell.HardReset("HEAD^^")
|
|
shell.UpdateFileAndAdd("file", "content4")
|
|
shell.Commit("four")
|
|
shell.CreateFileAndAdd("fil5", "content5")
|
|
shell.Commit("five")
|
|
|
|
shell.SetConfig("pull.rebase", "interactive")
|
|
},
|
|
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
|
t.Views().Commits().
|
|
Lines(
|
|
Contains("five"),
|
|
Contains("four"),
|
|
Contains("one"),
|
|
)
|
|
|
|
t.Views().Status().Content(Contains("↓2 repo → master"))
|
|
|
|
t.Views().Files().
|
|
IsFocused().
|
|
Press(keys.Universal.Pull)
|
|
|
|
t.Common().AcknowledgeConflicts()
|
|
|
|
t.Views().Commits().
|
|
Focus().
|
|
Lines(
|
|
Contains("pick").Contains("five").IsSelected(),
|
|
Contains("conflict").Contains("YOU ARE HERE").Contains("four"),
|
|
Contains("three"),
|
|
Contains("two"),
|
|
Contains("one"),
|
|
).
|
|
Press(keys.Universal.Remove).
|
|
Lines(
|
|
Contains("drop").Contains("five").IsSelected(),
|
|
Contains("conflict").Contains("YOU ARE HERE").Contains("four"),
|
|
Contains("three"),
|
|
Contains("two"),
|
|
Contains("one"),
|
|
)
|
|
|
|
t.Views().Files().
|
|
Focus().
|
|
Lines(
|
|
Contains("UU").Contains("file"),
|
|
).
|
|
PressEnter()
|
|
|
|
t.Views().MergeConflicts().
|
|
IsFocused().
|
|
TopLines(
|
|
Contains("<<<<<<< HEAD"),
|
|
Contains("content2"),
|
|
Contains("======="),
|
|
Contains("content4"),
|
|
Contains(">>>>>>>"),
|
|
).
|
|
SelectNextItem().
|
|
PressPrimaryAction() // choose 'content4'
|
|
|
|
t.Common().ContinueOnConflictsResolved()
|
|
|
|
t.Views().Status().Content(Contains("↑1 repo → master"))
|
|
|
|
t.Views().Commits().
|
|
Focus().
|
|
Lines(
|
|
Contains("four").IsSelected(),
|
|
Contains("three"),
|
|
Contains("two"),
|
|
Contains("one"),
|
|
)
|
|
|
|
t.Views().Main().
|
|
Content(
|
|
Contains("-content2").
|
|
Contains("+content4"),
|
|
)
|
|
},
|
|
})
|