Skip to content

Commit 473a3f1

Browse files
committed
fix tests
1 parent a13e13d commit 473a3f1

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

modules/fileicon/render.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ func (p *RenderedIconPool) RenderToHTML() template.HTML {
3434
return template.HTML(sb.String())
3535
}
3636

37+
// TODO: use an interface or struct to replace "*git.TreeEntry", to decouple the fileicon module from git module
38+
3739
func RenderEntryIcon(renderedIconPool *RenderedIconPool, entry *git.TreeEntry) template.HTML {
3840
if setting.UI.FileIconTheme == "material" {
3941
return DefaultMaterialIconProvider().FileIcon(renderedIconPool, entry)

services/repository/files/tree.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ func newTreeViewNodeFromEntry(ctx context.Context, renderedIconPool *fileicon.Re
166166
}
167167

168168
if entry.IsLink() {
169-
// TODO: symlink to a folder or a file
170-
target, err := entry.FollowLinks()
169+
// TODO: symlink to a folder or a file, the icon differs
170+
target, err := entry.FollowLink()
171171
if err == nil {
172172
_ = target.IsDir()
173173
// if target.IsDir() { } else { }
@@ -177,7 +177,7 @@ func newTreeViewNodeFromEntry(ctx context.Context, renderedIconPool *fileicon.Re
177177
if node.EntryIcon == "" {
178178
node.EntryIcon = fileicon.RenderEntryIcon(renderedIconPool, entry)
179179
// TODO: no open icon support yet
180-
// node.EntryIconOpen = fileicon.RenderFileIconOpen(renderedIconPool, entry)
180+
// node.EntryIconOpen = fileicon.RenderEntryIconOpen(renderedIconPool, entry)
181181
}
182182

183183
if node.EntryMode == "commit" {

services/repository/files/tree_test.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
package files
55

66
import (
7+
"html/template"
78
"testing"
89

910
"code.gitea.io/gitea/models/unittest"
11+
"code.gitea.io/gitea/modules/fileicon"
1012
"code.gitea.io/gitea/modules/git"
1113
api "code.gitea.io/gitea/modules/structs"
1214
"code.gitea.io/gitea/services/contexttest"
@@ -62,40 +64,51 @@ func TestGetTreeViewNodes(t *testing.T) {
6264
contexttest.LoadGitRepo(t, ctx)
6365
defer ctx.Repo.GitRepo.Close()
6466

65-
treeNodes, err := GetTreeViewNodes(ctx, ctx.Repo.Commit, "", "")
67+
renderedIconPool := fileicon.NewRenderedIconPool()
68+
mockIconForFile := func(id string) template.HTML {
69+
return template.HTML(`<svg class="svg git-entry-icon octicon-file" width="16" height="16" aria-hidden="true"><use xlink:href="#` + id + `"></use></svg>`)
70+
}
71+
mockIconForFolder := func(id string) template.HTML {
72+
return template.HTML(`<svg class="svg git-entry-icon octicon-file-directory-fill" width="16" height="16" aria-hidden="true"><use xlink:href="#` + id + `"></use></svg>`)
73+
}
74+
treeNodes, err := GetTreeViewNodes(ctx, renderedIconPool, ctx.Repo.Commit, "", "")
6675
assert.NoError(t, err)
6776
assert.Equal(t, []*TreeViewNode{
6877
{
6978
EntryName: "docs",
7079
EntryMode: "tree",
7180
FullPath: "docs",
81+
EntryIcon: mockIconForFolder(`svg-mfi-folder-docs`),
7282
},
7383
}, treeNodes)
7484

75-
treeNodes, err = GetTreeViewNodes(ctx, ctx.Repo.Commit, "", "docs/README.md")
85+
treeNodes, err = GetTreeViewNodes(ctx, renderedIconPool, ctx.Repo.Commit, "", "docs/README.md")
7686
assert.NoError(t, err)
7787
assert.Equal(t, []*TreeViewNode{
7888
{
7989
EntryName: "docs",
8090
EntryMode: "tree",
8191
FullPath: "docs",
92+
EntryIcon: mockIconForFolder(`svg-mfi-folder-docs`),
8293
Children: []*TreeViewNode{
8394
{
8495
EntryName: "README.md",
8596
EntryMode: "blob",
8697
FullPath: "docs/README.md",
98+
EntryIcon: mockIconForFile(`svg-mfi-readme`),
8799
},
88100
},
89101
},
90102
}, treeNodes)
91103

92-
treeNodes, err = GetTreeViewNodes(ctx, ctx.Repo.Commit, "docs", "README.md")
104+
treeNodes, err = GetTreeViewNodes(ctx, renderedIconPool, ctx.Repo.Commit, "docs", "README.md")
93105
assert.NoError(t, err)
94106
assert.Equal(t, []*TreeViewNode{
95107
{
96108
EntryName: "README.md",
97109
EntryMode: "blob",
98110
FullPath: "docs/README.md",
111+
EntryIcon: mockIconForFile(`svg-mfi-readme`),
99112
},
100113
}, treeNodes)
101114
}

web_src/js/components/ViewFileTree.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import ViewFileTreeItem from './ViewFileTreeItem.vue';
33
import {onMounted, ref} from 'vue';
44
import {pathEscapeSegments} from '../utils/url.ts';
55
import {GET} from '../modules/fetch.ts';
6-
import {createElementFromHTML} from "../utils/dom.ts";
6+
import {createElementFromHTML} from '../utils/dom.ts';
77
88
const elRoot = ref<HTMLElement | null>(null);
99

0 commit comments

Comments
 (0)