From 3f673ce4d4665eb2251206bb5ee6c05c2aac0625 Mon Sep 17 00:00:00 2001 From: Beowulf Date: Sat, 19 Apr 2025 04:33:07 +0000 Subject: [PATCH] fix(ui): show commit icon in branch dropdown button when viewing a commit (#7571) Closes https://codeberg.org/forgejo/forgejo/issues/7570 Fixed never running repo-home e2e test for language switcher Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7571 Reviewed-by: 0ko <0ko@noreply.codeberg.org> Co-authored-by: Beowulf Co-committed-by: Beowulf --- templates/repo/branch_dropdown.tmpl | 4 ++- tests/e2e/declare_repos_test.go | 8 +++++ tests/e2e/repo-home.e2e.ts | 19 ----------- tests/e2e/repo-home.test.e2e.ts | 33 +++++++++++++++++++ .../js/components/RepoBranchTagSelector.vue | 11 ++++--- 5 files changed, 50 insertions(+), 25 deletions(-) delete mode 100644 tests/e2e/repo-home.e2e.ts create mode 100644 tests/e2e/repo-home.test.e2e.ts 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