mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 14:31:02 +00:00 
			
		
		
		
	test: coverage for /repos/{owner}/{repo}/issues?project=
Refs: https://codeberg.org/forgejo/forgejo/pulls/4215#issuecomment-2040651
(cherry picked from commit b18ba810a5)
	
	
This commit is contained in:
		
					parent
					
						
							
								04a8162e4f
							
						
					
				
			
			
				commit
				
					
						cc425ad87b
					
				
			
		
					 1 changed files with 52 additions and 0 deletions
				
			
		|  | @ -17,6 +17,7 @@ import ( | |||
| 
 | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	issues_model "code.gitea.io/gitea/models/issues" | ||||
| 	project_model "code.gitea.io/gitea/models/project" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	unit_model "code.gitea.io/gitea/models/unit" | ||||
| 	"code.gitea.io/gitea/models/unittest" | ||||
|  | @ -121,6 +122,57 @@ func TestViewIssuesKeyword(t *testing.T) { | |||
| 	}) | ||||
| } | ||||
| 
 | ||||
| func TestViewIssuesSearchOptions(t *testing.T) { | ||||
| 	defer tests.PrepareTestEnv(t)() | ||||
| 
 | ||||
| 	repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) | ||||
| 
 | ||||
| 	// there are two issues in repo1, both bound to a project. Add one | ||||
| 	// that is not bound to any project. | ||||
| 	_, issueNoProject := testIssueWithBean(t, "user2", 1, "Title", "Description") | ||||
| 
 | ||||
| 	t.Run("All issues", func(t *testing.T) { | ||||
| 		req := NewRequestf(t, "GET", "%s/issues?state=all", repo.Link()) | ||||
| 		resp := MakeRequest(t, req, http.StatusOK) | ||||
| 		htmlDoc := NewHTMLParser(t, resp.Body) | ||||
| 		issuesSelection := getIssuesSelection(t, htmlDoc) | ||||
| 		assert.EqualValues(t, 3, issuesSelection.Length()) | ||||
| 	}) | ||||
| 
 | ||||
| 	t.Run("Issues with no project", func(t *testing.T) { | ||||
| 		req := NewRequestf(t, "GET", "%s/issues?state=all&project=-1", repo.Link()) | ||||
| 		resp := MakeRequest(t, req, http.StatusOK) | ||||
| 		htmlDoc := NewHTMLParser(t, resp.Body) | ||||
| 		issuesSelection := getIssuesSelection(t, htmlDoc) | ||||
| 		assert.EqualValues(t, 1, issuesSelection.Length()) | ||||
| 		issuesSelection.Each(func(_ int, selection *goquery.Selection) { | ||||
| 			issue := getIssue(t, repo.ID, selection) | ||||
| 			assert.Equal(t, issueNoProject.ID, issue.ID) | ||||
| 		}) | ||||
| 	}) | ||||
| 
 | ||||
| 	t.Run("Issues with a specific project", func(t *testing.T) { | ||||
| 		project := unittest.AssertExistsAndLoadBean(t, &project_model.Project{ID: 1}) | ||||
| 
 | ||||
| 		req := NewRequestf(t, "GET", "%s/issues?state=all&project=%d", repo.Link(), project.ID) | ||||
| 		resp := MakeRequest(t, req, http.StatusOK) | ||||
| 		htmlDoc := NewHTMLParser(t, resp.Body) | ||||
| 		issuesSelection := getIssuesSelection(t, htmlDoc) | ||||
| 		assert.EqualValues(t, 2, issuesSelection.Length()) | ||||
| 		found := map[int64]bool{ | ||||
| 			1: false, | ||||
| 			5: false, | ||||
| 		} | ||||
| 		issuesSelection.Each(func(_ int, selection *goquery.Selection) { | ||||
| 			issue := getIssue(t, repo.ID, selection) | ||||
| 			found[issue.ID] = true | ||||
| 		}) | ||||
| 		assert.EqualValues(t, 2, len(found)) | ||||
| 		assert.True(t, found[1]) | ||||
| 		assert.True(t, found[5]) | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
| func TestNoLoginViewIssue(t *testing.T) { | ||||
| 	defer tests.PrepareTestEnv(t)() | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue