1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-28 16:02:01 +03:00

add two more tests

This commit is contained in:
Jesse Duffield
2019-03-16 10:15:46 +11:00
parent b6447ebdbb
commit f5c8aac97d
2 changed files with 82 additions and 5 deletions

View File

@ -798,8 +798,8 @@ func (c *GitCommand) CherryPickCommits(commits []*Commit) error {
} }
// GetCommitFiles get the specified commit files // GetCommitFiles get the specified commit files
func (c *GitCommand) GetCommitFiles(commitID string) ([]*CommitFile, error) { func (c *GitCommand) GetCommitFiles(commitSha string) ([]*CommitFile, error) {
cmd := fmt.Sprintf("git show --pretty= --name-only %s", commitID) cmd := fmt.Sprintf("git show --pretty= --name-only %s", commitSha)
files, err := c.OSCommand.RunCommandWithOutput(cmd) files, err := c.OSCommand.RunCommandWithOutput(cmd)
if err != nil { if err != nil {
return nil, err return nil, err
@ -809,7 +809,7 @@ func (c *GitCommand) GetCommitFiles(commitID string) ([]*CommitFile, error) {
for _, file := range strings.Split(strings.TrimRight(files, "\n"), "\n") { for _, file := range strings.Split(strings.TrimRight(files, "\n"), "\n") {
commitFiles = append(commitFiles, &CommitFile{ commitFiles = append(commitFiles, &CommitFile{
Sha: commitID, Sha: commitSha,
Name: file, Name: file,
DisplayString: file, DisplayString: file,
}) })
@ -819,8 +819,8 @@ func (c *GitCommand) GetCommitFiles(commitID string) ([]*CommitFile, error) {
} }
// ShowCommitFile get the diff of specified commit file // ShowCommitFile get the diff of specified commit file
func (c *GitCommand) ShowCommitFile(commitID, file string) (string, error) { func (c *GitCommand) ShowCommitFile(commitSha, fileName string) (string, error) {
cmd := fmt.Sprintf("git show --color %s -- %s", commitID, file) cmd := fmt.Sprintf("git show --color %s -- %s", commitSha, fileName)
return c.OSCommand.RunCommandWithOutput(cmd) return c.OSCommand.RunCommandWithOutput(cmd)
} }

View File

@ -1855,3 +1855,80 @@ func TestGitCommandDiscardOldFileChanges(t *testing.T) {
}) })
} }
} }
// TestGitCommandShowCommitFile is a function.
func TestGitCommandShowCommitFile(t *testing.T) {
type scenario struct {
testName string
commitSha string
fileName string
command func(string, ...string) *exec.Cmd
test func(string, error)
}
scenarios := []scenario{
{
"valid case",
"123456",
"hello.txt",
test.CreateMockCommand(t, []*test.CommandSwapper{
{
Expect: "git show --color 123456 -- hello.txt",
Replace: "echo -n hello",
},
}),
func(str string, err error) {
assert.NoError(t, err)
assert.Equal(t, "hello", str)
},
},
}
gitCmd := NewDummyGitCommand()
for _, s := range scenarios {
t.Run(s.testName, func(t *testing.T) {
gitCmd.OSCommand.command = s.command
s.test(gitCmd.ShowCommitFile(s.commitSha, s.fileName))
})
}
}
// TestGitCommandGetCommitFiles is a function.
func TestGitCommandGetCommitFiles(t *testing.T) {
type scenario struct {
testName string
commitSha string
command func(string, ...string) *exec.Cmd
test func([]*CommitFile, error)
}
scenarios := []scenario{
{
"valid case",
"123456",
test.CreateMockCommand(t, []*test.CommandSwapper{
{
Expect: "git show --pretty= --name-only 123456",
Replace: "echo 'hello\nworld'",
},
}),
func(commitFiles []*CommitFile, err error) {
assert.NoError(t, err)
assert.Equal(t, []*CommitFile{
{Sha: "123456", Name: "hello", DisplayString: "hello"},
{Sha: "123456", Name: "world", DisplayString: "world"},
}, commitFiles)
},
},
}
gitCmd := NewDummyGitCommand()
for _, s := range scenarios {
t.Run(s.testName, func(t *testing.T) {
gitCmd.OSCommand.command = s.command
s.test(gitCmd.GetCommitFiles(s.commitSha))
})
}
}