mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-05-12 04:45:47 +02:00
Assert the entire lines using Equals instead of Contains. This makes the tests a bit easier to read, and it makes it much easier to decide how they need to be changed when we change the layout (like we do in the last commit of this branch). It is true that this requires changing all these tests for any future UI changes, but I think this is a good price to pay; those adaptions are trivial and can be done without thinking.
107 lines
3 KiB
Go
107 lines
3 KiB
Go
package patch_building
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
var ToggleRange = NewIntegrationTest(NewIntegrationTestArgs{
|
|
Description: "Check multi select toggle logic",
|
|
ExtraCmdArgs: []string{},
|
|
Skip: false,
|
|
SetupConfig: func(config *config.AppConfig) {},
|
|
SetupRepo: func(shell *Shell) {
|
|
shell.CreateDir("dir1")
|
|
shell.CreateFileAndAdd("dir1/file1-a", "d2f1 first line\nsecond line\nthird line\n")
|
|
shell.CreateFileAndAdd("dir1/file2-a", "d1f2 first line\n")
|
|
shell.CreateFileAndAdd("dir1/file3-a", "d1f3 first line\n")
|
|
|
|
shell.CreateDir("dir2")
|
|
shell.CreateFileAndAdd("dir2/file1-b", "d2f1 first line\nsecond line\nthird line\n")
|
|
shell.CreateFileAndAdd("dir2/file2-b", "d2f2 first line\n")
|
|
shell.CreateFileAndAdd("dir2/file3-b", "d2f3 first line\nsecond line\n")
|
|
|
|
shell.Commit("first commit")
|
|
},
|
|
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
|
t.Views().Commits().
|
|
Focus().
|
|
Lines(
|
|
Contains("first commit").IsSelected(),
|
|
).
|
|
PressEnter()
|
|
|
|
t.Views().CommitFiles().
|
|
IsFocused().
|
|
Lines(
|
|
Equals("▼ dir1").IsSelected(),
|
|
Equals(" A file1-a"),
|
|
Equals(" A file2-a"),
|
|
Equals(" A file3-a"),
|
|
Equals("▼ dir2"),
|
|
Equals(" A file1-b"),
|
|
Equals(" A file2-b"),
|
|
Equals(" A file3-b"),
|
|
).
|
|
NavigateToLine(Contains("file1-a")).
|
|
Press(keys.Universal.ToggleRangeSelect).
|
|
NavigateToLine(Contains("file3-a")).
|
|
PressPrimaryAction().
|
|
Lines(
|
|
Equals("▼ dir1"),
|
|
Equals(" ● file1-a").IsSelected(),
|
|
Equals(" ● file2-a").IsSelected(),
|
|
Equals(" ● file3-a").IsSelected(),
|
|
Equals("▼ dir2"),
|
|
Equals(" A file1-b"),
|
|
Equals(" A file2-b"),
|
|
Equals(" A file3-b"),
|
|
).
|
|
PressEscape().
|
|
NavigateToLine(Contains("file3-b")).
|
|
PressEnter()
|
|
|
|
t.Views().Main().IsFocused().
|
|
NavigateToLine(Contains("second line")).
|
|
PressPrimaryAction().
|
|
PressEscape()
|
|
|
|
t.Views().CommitFiles().
|
|
IsFocused().
|
|
Lines(
|
|
Equals("▼ dir1"),
|
|
Equals(" ● file1-a"),
|
|
Equals(" ● file2-a"),
|
|
Equals(" ● file3-a"),
|
|
Equals("▼ dir2"),
|
|
Equals(" A file1-b"),
|
|
Equals(" A file2-b"),
|
|
Equals(" ◐ file3-b").IsSelected(),
|
|
).
|
|
NavigateToLine(Contains("dir1")).
|
|
Press(keys.Universal.ToggleRangeSelect).
|
|
NavigateToLine(Contains("dir2")).
|
|
PressPrimaryAction().
|
|
Lines(
|
|
Equals("▼ dir1").IsSelected(),
|
|
Equals(" ● file1-a").IsSelected(),
|
|
Equals(" ● file2-a").IsSelected(),
|
|
Equals(" ● file3-a").IsSelected(),
|
|
Equals("▼ dir2").IsSelected(),
|
|
Equals(" ● file1-b"),
|
|
Equals(" ● file2-b"),
|
|
Equals(" ● file3-b"),
|
|
).
|
|
PressPrimaryAction().
|
|
Lines(
|
|
Equals("▼ dir1").IsSelected(),
|
|
Equals(" A file1-a").IsSelected(),
|
|
Equals(" A file2-a").IsSelected(),
|
|
Equals(" A file3-a").IsSelected(),
|
|
Equals("▼ dir2").IsSelected(),
|
|
Equals(" A file1-b"),
|
|
Equals(" A file2-b"),
|
|
Equals(" A file3-b"),
|
|
)
|
|
},
|
|
})
|