This commit is contained in:
Lunny Xiao committed 2025-01-02 23:52:01 -08:00
1 parent fe63c5fbc1
commit 09000c4ce9
3 files changed
+46 -32

No files matched your search

+10 -5
View File
@@ -416,14 +416,19 @@ func GetTreeInformation(ctx context.Context, repo *repo_model.Repository, treePa
var treeList []*TreeEntry
var parentEntry *TreeEntry
fields := strings.SplitN(treePath, "/", 2)
for _, rootEntry := range rootEntries {
for _, entry := range rootEntries {
treeEntry := &TreeEntry{
Name: rootEntry.Name(),
IsFile: rootEntry.Mode() != git.EntryModeTree,
Path: rootEntry.Name(),
Name: entry.Name(),
IsFile: entry.Mode() != git.EntryModeTree,
Path: entry.Name(),
}
treeList = append(treeList, treeEntry)
if fields[0] == rootEntry.Name() {
if fields[0] == entry.Name() {
if len(fields) == 1 {
if treeEntry.IsFile {
return treeList, nil
}
}
parentEntry = treeEntry
}
}
+33 -24
View File
@@ -118,6 +118,14 @@ func Test_GetTreeInformation(t *testing.T) {
assert.True(t, treeList[0].IsFile)
assert.Empty(t, treeList[0].Children)
treeList, err = GetTreeInformation(ctx1, ctx1.Repo.Repository, "README.md", refName)
assert.NoError(t, err)
assert.Len(t, treeList, 1)
assert.EqualValues(t, "README.md", treeList[0].Name)
assert.EqualValues(t, "README.md", treeList[0].Path)
assert.True(t, treeList[0].IsFile)
assert.Empty(t, treeList[0].Children)
ctx2, _ := contexttest.MockContext(t, "org3/repo3")
contexttest.LoadRepo(t, ctx2, 3)
contexttest.LoadRepoCommit(t, ctx2)
@@ -143,36 +151,37 @@ func Test_GetTreeInformation(t *testing.T) {
treeList, err = GetTreeInformation(ctx2, ctx2.Repo.Repository, "doc", refName)
assert.NoError(t, err)
assert.Len(t, treeList, 2)
assert.EqualValues(t, "README.md", treeList[0].Name)
assert.EqualValues(t, "README.md", treeList[0].Path)
assert.True(t, treeList[0].IsFile)
assert.Empty(t, treeList[0].Children)
assert.EqualValues(t, "doc", treeList[0].Name)
assert.EqualValues(t, "doc", treeList[0].Path)
assert.False(t, treeList[0].IsFile)
assert.Len(t, treeList[0].Children, 1)
assert.EqualValues(t, "doc", treeList[1].Name)
assert.EqualValues(t, "doc", treeList[1].Path)
assert.False(t, treeList[1].IsFile)
assert.Len(t, treeList[1].Children, 1)
assert.EqualValues(t, "doc.md", treeList[0].Children[0].Name)
assert.EqualValues(t, "doc/doc.md", treeList[0].Children[0].Path)
assert.True(t, treeList[0].Children[0].IsFile)
assert.Empty(t, treeList[0].Children[0].Children)
assert.EqualValues(t, "doc.md", treeList[1].Children[0].Name)
assert.EqualValues(t, "doc/doc.md", treeList[1].Children[0].Path)
assert.True(t, treeList[1].Children[0].IsFile)
assert.Empty(t, treeList[1].Children[0].Children)
assert.EqualValues(t, "README.md", treeList[1].Name)
assert.EqualValues(t, "README.md", treeList[1].Path)
assert.True(t, treeList[1].IsFile)
assert.Empty(t, treeList[1].Children)
treeList, err = GetTreeInformation(ctx2, ctx2.Repo.Repository, "doc/doc.md", refName)
assert.NoError(t, err)
assert.Len(t, treeList, 2)
assert.EqualValues(t, "README.md", treeList[0].Name)
assert.EqualValues(t, "README.md", treeList[0].Path)
assert.True(t, treeList[0].IsFile)
assert.Empty(t, treeList[0].Children)
assert.EqualValues(t, "doc", treeList[1].Name)
assert.EqualValues(t, "doc", treeList[1].Path)
assert.False(t, treeList[1].IsFile)
assert.Len(t, treeList[1].Children, 1)
assert.EqualValues(t, "doc", treeList[0].Name)
assert.EqualValues(t, "doc", treeList[0].Path)
assert.False(t, treeList[0].IsFile)
assert.Len(t, treeList[0].Children, 1)
assert.EqualValues(t, "doc.md", treeList[1].Children[0].Name)
assert.EqualValues(t, "doc/doc.md", treeList[1].Children[0].Path)
assert.True(t, treeList[1].Children[0].IsFile)
assert.Empty(t, treeList[1].Children[0].Children)
assert.EqualValues(t, "doc.md", treeList[0].Children[0].Name)
assert.EqualValues(t, "doc/doc.md", treeList[0].Children[0].Path)
assert.True(t, treeList[0].Children[0].IsFile)
assert.Empty(t, treeList[0].Children[0].Children)
assert.EqualValues(t, "README.md", treeList[1].Name)
assert.EqualValues(t, "README.md", treeList[1].Path)
assert.True(t, treeList[1].IsFile)
assert.Empty(t, treeList[1].Children)
}