diff --git a/templates/repo/migrate/migrate.tmpl b/templates/repo/migrate/migrate.tmpl
index 9d10bba49d..786061be51 100644
--- a/templates/repo/migrate/migrate.tmpl
+++ b/templates/repo/migrate/migrate.tmpl
@@ -16,7 +16,11 @@
{{.Title}}
- {{ctx.Locale.Tr (printf "repo.migrate.%s.description" .Name)}}
+ {{if eq .Name "pagure"}}
+ {{ctx.Locale.Tr "migrate.pagure.description"}}
+ {{else}}
+ {{ctx.Locale.Tr (printf "repo.migrate.%s.description" .Name)}}
+ {{end}}
diff --git a/tests/integration/repo_migration_ui_test.go b/tests/integration/repo_migration_ui_test.go
index 279e9861fe..55a58e5f0b 100644
--- a/tests/integration/repo_migration_ui_test.go
+++ b/tests/integration/repo_migration_ui_test.go
@@ -1,4 +1,4 @@
-// Copyright 2024 The Forgejo Authors. All rights reserved.
+// Copyright 2024-2025 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: GPL-3.0-or-later
package integration
@@ -6,15 +6,18 @@ package integration
import (
"fmt"
"net/http"
+ "strings"
"testing"
+ "forgejo.org/modules/translation"
"forgejo.org/tests"
"github.com/PuerkitoBio/goquery"
"github.com/stretchr/testify/assert"
)
-// TestRepoMigrationUI is used to test various form properties of different migration types
+// TestRepoMigrationUI is used to test various form properties of different
+// migration types on /repo/migrate?service_type=%d
func TestRepoMigrationUI(t *testing.T) {
defer tests.PrepareTestEnv(t)()
session := loginUser(t, "user1")
@@ -103,3 +106,26 @@ func testRepoMigrationFormItems(t *testing.T, items *goquery.Selection, expected
assert.Equal(t, expectedName, name)
}
}
+
+// TestRepoMigrationTypeSelect is a simple content test for page /repo/migrate
+// where migration source type is selected
+func TestRepoMigrationTypeSelect(t *testing.T) {
+ defer tests.PrepareTestEnv(t)()
+
+ session := loginUser(t, "user1")
+ locale := translation.NewLocale("en-US")
+
+ page := NewHTMLParser(t, session.MakeRequest(t, NewRequest(t, "GET", "/repo/migrate"), http.StatusOK).Body)
+ headers := page.Find(".migrate-entry h3").Text()
+ descriptions := page.Find(".migrate-entry .description").Text()
+
+ sourceNames := []string{"github", "gitea", "gitlab", "gogs", "onedev", "gitbucket", "codebase", "forgejo"}
+ for _, sourceName := range sourceNames {
+ assert.Contains(t, strings.ToLower(headers), sourceName)
+ assert.Contains(t, descriptions, locale.Tr(fmt.Sprintf("repo.migrate.%s.description", sourceName)))
+ }
+
+ // Special case
+ assert.Contains(t, strings.ToLower(headers), "pagure")
+ assert.Contains(t, descriptions, locale.Tr("migrate.pagure.description")) // Not prefixed with repo.
+}