mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-27 06:46:28 +01:00
Backport #39969 Co-authored-by: schop-rob <49682405+schop-rob@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
2 files changed
+40
-3
No files matched your search
@@ -116,3 +116,40 @@ func TestGetDiffForRender(t *testing.T) {
|
||||
assert.Equal(t, exp, actual, "idx=%d", idx)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetDiffForRenderRenamedFile(t *testing.T) {
|
||||
repoDir := filepath.Join(t.TempDir(), "temp-repo")
|
||||
require.NoError(t, git.InitRepositoryLocal(t.Context(), repoDir, false, git.Sha1ObjectFormat.Name()))
|
||||
|
||||
gitRepo, err := git.OpenRepositoryLocal(t.Context(), repoDir)
|
||||
require.NoError(t, err)
|
||||
defer gitRepo.Close()
|
||||
|
||||
content := "id,name\n1,Alice\n2,Bob\n"
|
||||
require.NoError(t, git.ForceFastImport(t.Context(), gitRepo, []git.FastImportCommit{
|
||||
{Ref: "refs/heads/b1", Files: []git.FastImportFile{{Path: "original/sample.csv", Content: content}}},
|
||||
{Ref: "refs/heads/b2", Files: []git.FastImportFile{{Path: "moved/sample.csv", Content: content}}},
|
||||
}))
|
||||
|
||||
beforeCommit, err := gitRepo.GetBranchCommit(t.Context(), "b1")
|
||||
require.NoError(t, err)
|
||||
afterCommit, err := gitRepo.GetBranchCommit(t.Context(), "b2")
|
||||
require.NoError(t, err)
|
||||
|
||||
diff, err := GetDiffForRender(t.Context(), "/any/repo-link", gitRepo, &DiffOptions{
|
||||
BeforeCommitID: beforeCommit.ID.String(),
|
||||
AfterCommitID: afterCommit.ID.String(),
|
||||
MaxLines: setting.Git.MaxGitDiffLines,
|
||||
MaxLineCharacters: setting.Git.MaxGitDiffLineCharacters,
|
||||
MaxFiles: setting.Git.MaxGitDiffFiles,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, diff.Files, 1)
|
||||
|
||||
// the CSV diff of a renamed file needs both blobs, otherwise it panics
|
||||
diffFile := diff.Files[0]
|
||||
assert.Equal(t, DiffFileRename, diffFile.Type)
|
||||
assert.True(t, diffFile.IsBlobTypeCsv)
|
||||
assert.NotNil(t, diffFile.LeftBlob)
|
||||
assert.NotNil(t, diffFile.RightBlob)
|
||||
}
|
||||
Reference in new issue
Block a user