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:
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user