loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(ui): make JS asset load error message translatable (#7388)

- The 'Failed to load asset files from [...]' is now an translatable string.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7388
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Co-committed-by: 0ko <0ko@noreply.codeberg.org>

authored by

0ko
0ko
and committed by
Gusted
6ad625b0 c497ef9e

+45 -18
+2 -1
options/locale_next/locale_en-US.json
··· 17 17 "themes.names.forgejo-auto": "Forgejo (follow system theme)", 18 18 "themes.names.forgejo-light": "Forgejo light", 19 19 "themes.names.forgejo-dark": "Forgejo dark", 20 - "error.not_found.title": "Page not found" 20 + "error.not_found.title": "Page not found", 21 + "alert.asset_load_failed": "Failed to load asset files from {path}. Please make sure the asset files can be accessed." 21 22 }
+1 -1
templates/base/footer.tmpl
··· 13 13 14 14 {{template "base/footer_content" .}} 15 15 16 - <script src="{{AssetUrlPrefix}}/js/index.js?v={{AssetVersion}}" onerror="alert('Failed to load asset files from ' + this.src + '. Please make sure the asset files can be accessed.')"></script> 16 + <script src="{{AssetUrlPrefix}}/js/index.js?v={{AssetVersion}}" onerror="alert('{{ctx.Locale.Tr "alert.asset_load_failed"}}'.replace('{path}', this.src))"></script> 17 17 18 18 {{template "custom/footer" .}} 19 19 </body>
+41
tests/integration/common_navigation_test.go
··· 1 + // Copyright 2024-2025 The Forgejo Authors. All rights reserved. 2 + // SPDX-License-Identifier: GPL-3.0-or-later 3 + 4 + package integration 5 + 6 + import ( 7 + "fmt" 8 + "net/http" 9 + "strings" 10 + "testing" 11 + 12 + "forgejo.org/models/unittest" 13 + "forgejo.org/modules/translation" 14 + 15 + "github.com/stretchr/testify/assert" 16 + "github.com/stretchr/testify/require" 17 + ) 18 + 19 + // This test verifies common elements that are visible on all pages but most 20 + // likely to be first seen on `/` 21 + func TestCommonNavigationElements(t *testing.T) { 22 + require.NoError(t, unittest.PrepareTestDatabase()) 23 + 24 + session := loginUser(t, "user1") 25 + locale := translation.NewLocale("en-US") 26 + 27 + response := session.MakeRequest(t, NewRequest(t, "GET", "/"), http.StatusOK) 28 + page := NewHTMLParser(t, response.Body) 29 + 30 + // Navbar 31 + links := page.Find("#navbar .dropdown[data-tooltip-content='Create…'] .menu") 32 + assert.Equal(t, locale.TrString("new_repo.link"), strings.TrimSpace(links.Find("a[href='/repo/create']").Text())) 33 + assert.Equal(t, locale.TrString("new_migrate.link"), strings.TrimSpace(links.Find("a[href='/repo/migrate']").Text())) 34 + assert.Equal(t, locale.TrString("new_org.link"), strings.TrimSpace(links.Find("a[href='/org/create']").Text())) 35 + 36 + // After footer: index.js 37 + page.AssertElement(t, "script[src^='/assets/js/index.js']", true) 38 + onerror, _ := page.Find("script[src^='/assets/js/index.js']").Attr("onerror") 39 + expected := fmt.Sprintf("alert('%s'.replace('{path}', this.src))", locale.TrString("alert.asset_load_failed")) 40 + assert.Equal(t, expected, onerror) 41 + }
+1 -16
tests/integration/user_dashboard_test.go
··· 1 - // Copyright 2024 The Forgejo Authors. All rights reserved. 1 + // Copyright 2024-2025 The Forgejo Authors. All rights reserved. 2 2 // SPDX-License-Identifier: GPL-3.0-or-later 3 3 4 4 package integration ··· 14 14 unit_model "forgejo.org/models/unit" 15 15 "forgejo.org/models/unittest" 16 16 user_model "forgejo.org/models/user" 17 - "forgejo.org/modules/translation" 18 17 issue_service "forgejo.org/services/issue" 19 18 files_service "forgejo.org/services/repository/files" 20 19 "forgejo.org/tests" ··· 23 22 "github.com/stretchr/testify/assert" 24 23 "github.com/stretchr/testify/require" 25 24 ) 26 - 27 - func TestUserDashboardActionLinks(t *testing.T) { 28 - require.NoError(t, unittest.PrepareTestDatabase()) 29 - 30 - session := loginUser(t, "user1") 31 - locale := translation.NewLocale("en-US") 32 - 33 - response := session.MakeRequest(t, NewRequest(t, "GET", "/"), http.StatusOK) 34 - page := NewHTMLParser(t, response.Body) 35 - links := page.Find("#navbar .dropdown[data-tooltip-content='Create…'] .menu") 36 - assert.Equal(t, locale.TrString("new_repo.link"), strings.TrimSpace(links.Find("a[href='/repo/create']").Text())) 37 - assert.Equal(t, locale.TrString("new_migrate.link"), strings.TrimSpace(links.Find("a[href='/repo/migrate']").Text())) 38 - assert.Equal(t, locale.TrString("new_org.link"), strings.TrimSpace(links.Find("a[href='/org/create']").Text())) 39 - } 40 25 41 26 func TestUserDashboardFeedWelcome(t *testing.T) { 42 27 require.NoError(t, unittest.PrepareTestDatabase())