1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-04-19 17:02:18 +03:00
lazygit/pkg/integration/tests/commit/checkout_file_from_commit.go
Stefan Haller ac7d8ad025 Add test for checking out a file from a commit
This works, we just didn't have a test for it.
2025-03-25 09:56:01 +01:00

56 lines
1.3 KiB
Go

package commit
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var CheckoutFileFromCommit = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Checkout a file from a commit",
ExtraCmdArgs: []string{},
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
shell.CreateFileAndAdd("file.txt", "one\n")
shell.Commit("one")
shell.CreateFileAndAdd("file.txt", "two\n")
shell.Commit("two")
shell.CreateFileAndAdd("file.txt", "three\n")
shell.Commit("three")
shell.CreateFileAndAdd("file.txt", "four\n")
shell.Commit("four")
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
t.Views().Commits().
Focus().
Lines(
Contains("four").IsSelected(),
Contains("three"),
Contains("two"),
Contains("one"),
).
NavigateToLine(Contains("three")).
Tap(func() {
t.Views().Main().ContainsLines(
Contains("-two"),
Contains("+three"),
)
}).
PressEnter()
t.Views().CommitFiles().
IsFocused().
Lines(
Equals("M file.txt"),
).
Press(keys.CommitFiles.CheckoutCommitFile)
t.Views().Files().
Lines(
Equals("M file.txt"),
)
t.FileSystem().FileContent("file.txt", Equals("three\n"))
},
})