diff --git a/templates/repo/branch_dropdown.tmpl b/templates/repo/branch_dropdown.tmpl
index dcb1792485..ac4f8d2b75 100644
--- a/templates/repo/branch_dropdown.tmpl
+++ b/templates/repo/branch_dropdown.tmpl
@@ -77,8 +77,10 @@
{{else}}
{{if eq $type "tag"}}
{{svg "octicon-tag"}}
- {{else}}
+ {{else if eq $type "branch"}}
{{svg "octicon-git-branch"}}
+ {{else}}
+ {{svg "octicon-git-commit"}}
{{end}}
{{if and .root.IsViewTag (not .noTag)}}{{.root.TagName}}{{else if .root.IsViewBranch}}{{.root.BranchName}}{{else}}{{ShortSha .root.CommitID}}{{end}}
{{end}}
diff --git a/tests/e2e/declare_repos_test.go b/tests/e2e/declare_repos_test.go
index f701b11f97..f45687651c 100644
--- a/tests/e2e/declare_repos_test.go
+++ b/tests/e2e/declare_repos_test.go
@@ -13,6 +13,7 @@ import (
"forgejo.org/models/unittest"
user_model "forgejo.org/models/user"
"forgejo.org/modules/git"
+ "forgejo.org/modules/indexer/stats"
files_service "forgejo.org/services/repository/files"
"forgejo.org/tests"
@@ -36,6 +37,10 @@ func DeclareGitRepos(t *testing.T) func() {
Filename: "testfile",
Versions: []string{"hello", "hallo", "hola", "native", "ubuntu-latest", "- runs-on: ubuntu-latest", "- runs-on: debian-latest"},
}}),
+ newRepo(t, 2, "language-stats-test", []FileChanges{{
+ Filename: "main.rs",
+ Versions: []string{"fn main() {", "println!(\"Hello World!\");", "}"},
+ }}),
newRepo(t, 2, "mentions-highlighted", []FileChanges{
{
Filename: "history1.md",
@@ -105,5 +110,8 @@ func newRepo(t *testing.T, userID int64, repoName string, fileChanges []FileChan
}
}
+ err := stats.UpdateRepoIndexer(somerepo)
+ require.NoError(t, err)
+
return cleanupFunc
}
diff --git a/tests/e2e/repo-home.e2e.ts b/tests/e2e/repo-home.e2e.ts
deleted file mode 100644
index fbcfe17226..0000000000
--- a/tests/e2e/repo-home.e2e.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-// @watch start
-// web_src/js/features/common-global.js
-// web_src/css/repo.css
-// @watch end
-
-import {expect} from '@playwright/test';
-import {save_visual, test} from './utils_e2e.ts';
-
-test('Language stats bar', async ({page}) => {
- const response = await page.goto('/user2/repo1');
- expect(response?.status()).toBe(200);
-
- await expect(page.locator('#language-stats-legend')).toBeVisible();
- await save_visual(page);
-
- await page.click('#language-stats-bar');
- await expect(page.locator('#language-stats-legend')).toBeHidden();
- await save_visual(page);
-});
diff --git a/tests/e2e/repo-home.test.e2e.ts b/tests/e2e/repo-home.test.e2e.ts
new file mode 100644
index 0000000000..53f5a03c6b
--- /dev/null
+++ b/tests/e2e/repo-home.test.e2e.ts
@@ -0,0 +1,33 @@
+// @watch start
+// web_src/js/components/RepoBranchTagSelector.vue
+// web_src/js/features/common-global.js
+// web_src/css/repo.css
+// @watch end
+
+import {expect} from '@playwright/test';
+import {save_visual, test} from './utils_e2e.ts';
+
+test('Language stats bar', async ({page}) => {
+ const response = await page.goto('/user2/language-stats-test');
+ expect(response?.status()).toBe(200);
+
+ await expect(page.locator('#language-stats-legend')).toBeHidden();
+
+ await page.click('#language-stats-bar');
+ await expect(page.locator('#language-stats-legend')).toBeVisible();
+ await save_visual(page);
+
+ await page.click('#language-stats-bar');
+ await expect(page.locator('#language-stats-legend')).toBeHidden();
+ await save_visual(page);
+});
+
+test('Branch selector commit icon', async ({page}) => {
+ const response = await page.goto('/user2/repo1');
+ expect(response?.status()).toBe(200);
+
+ await expect(page.locator('.branch-dropdown-button svg.octicon-git-branch')).toBeVisible();
+
+ await page.goto('/user2/repo1/src/commit/65f1bf27bc');
+ await expect(page.locator('.branch-dropdown-button svg.octicon-git-commit')).toBeVisible();
+});
diff --git a/web_src/js/components/RepoBranchTagSelector.vue b/web_src/js/components/RepoBranchTagSelector.vue
index 12ff564aa7..edbbf6bb9b 100644
--- a/web_src/js/components/RepoBranchTagSelector.vue
+++ b/web_src/js/components/RepoBranchTagSelector.vue
@@ -54,12 +54,12 @@ const sfc = {
if (this.viewType === 'tree') {
this.isViewTree = true;
this.refNameText = this.commitIdShort;
- } else if (this.viewType === 'tag') {
+ } else if (this.viewType === 'branch') {
+ this.isViewBranch = true;
+ this.refNameText = this.viewType;
+ } else {
this.isViewTag = true;
this.refNameText = this.tagName;
- } else {
- this.isViewBranch = true;
- this.refNameText = this.branchName;
}
document.body.addEventListener('click', (event) => {
@@ -252,7 +252,8 @@ export default sfc; // activate IDE's Vue plugin
{{ textReleaseCompare }}
-
+
+
{{ refNameText }}