From b4360d504cfc00dff8f80c774e70e5facc0aed37 Mon Sep 17 00:00:00 2001 From: Gusted Date: Mon, 26 Feb 2024 16:17:11 +0100 Subject: [PATCH] [BUG] Remember topic only in repo search - If the user is searching repositories with an specific topic, adding any other filter option, such as showing unrelevant repositories or using another sort Forgejo should remember that 'topic only' was set. - Adds integration test. - Resolves #2461 --- templates/explore/repo_search.tmpl | 1 + tests/integration/explore_repos_test.go | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/templates/explore/repo_search.tmpl b/templates/explore/repo_search.tmpl index 573163d554..e2cf0bec39 100644 --- a/templates/explore/repo_search.tmpl +++ b/templates/explore/repo_search.tmpl @@ -2,6 +2,7 @@
+
{{template "shared/searchinput" dict "Value" .Keyword}} {{if .PageIsExploreRepositories}} diff --git a/tests/integration/explore_repos_test.go b/tests/integration/explore_repos_test.go index 26fd1dde64..fda376b96f 100644 --- a/tests/integration/explore_repos_test.go +++ b/tests/integration/explore_repos_test.go @@ -8,6 +8,7 @@ import ( "testing" "code.gitea.io/gitea/tests" + "github.com/stretchr/testify/assert" ) func TestExploreRepos(t *testing.T) { @@ -15,4 +16,16 @@ func TestExploreRepos(t *testing.T) { req := NewRequest(t, "GET", "/explore/repos") MakeRequest(t, req, http.StatusOK) + + t.Run("Persistent parameters", func(t *testing.T) { + defer tests.PrintCurrentTest(t)() + + req := NewRequest(t, "GET", "/explore/repos?topic=1&language=Go&sort=moststars") + resp := MakeRequest(t, req, http.StatusOK) + htmlDoc := NewHTMLParser(t, resp.Body) + + assert.EqualValues(t, "moststars", htmlDoc.Find("input[type='hidden'][name='sort']").AttrOr("value", "not found")) + assert.EqualValues(t, "Go", htmlDoc.Find("input[type='hidden'][name='language']").AttrOr("value", "not found")) + assert.EqualValues(t, "true", htmlDoc.Find("input[type='hidden'][name='topic']").AttrOr("value", "not found")) + }) }