]> source.dussan.org Git - gitea.git/commitdiff
Add test for #30674 (#30679)
authorLunny Xiao <xiaolunwen@gmail.com>
Wed, 24 Apr 2024 14:11:49 +0000 (22:11 +0800)
committerGitHub <noreply@github.com>
Wed, 24 Apr 2024 14:11:49 +0000 (14:11 +0000)
tests/integration/pull_compare_test.go

index 5ce8ea3031e13d18873e6a31d76cd2224b87f556..b814207b2fe22a4ec7b7d1a6b24560db7c57cfad 100644 (file)
@@ -5,8 +5,14 @@ package integration
 
 import (
        "net/http"
+       "net/url"
        "testing"
 
+       "code.gitea.io/gitea/models/db"
+       repo_model "code.gitea.io/gitea/models/repo"
+       "code.gitea.io/gitea/models/unittest"
+       user_model "code.gitea.io/gitea/models/user"
+       repo_service "code.gitea.io/gitea/services/repository"
        "code.gitea.io/gitea/tests"
 
        "github.com/stretchr/testify/assert"
@@ -32,4 +38,33 @@ func TestPullCompare(t *testing.T) {
        doc := NewHTMLParser(t, resp.Body)
        editButtonCount := doc.doc.Find(".diff-file-header-actions a[href*='/_edit/']").Length()
        assert.Greater(t, editButtonCount, 0, "Expected to find a button to edit a file in the PR diff view but there were none")
+
+       onGiteaRun(t, func(t *testing.T, u *url.URL) {
+               defer tests.PrepareTestEnv(t)()
+
+               session := loginUser(t, "user1")
+               testRepoFork(t, session, "user2", "repo1", "user1", "repo1")
+               testCreateBranch(t, session, "user1", "repo1", "branch/master", "master1", http.StatusSeeOther)
+               testEditFile(t, session, "user1", "repo1", "master1", "README.md", "Hello, World (Edited)\n")
+               resp = testPullCreate(t, session, "user1", "repo1", false, "master", "master1", "This is a pull title")
+
+               // the max value on issue_index.yml for repo_id=1 is 5
+               req = NewRequest(t, "GET", "/user2/repo1/pulls/6/files")
+               resp = session.MakeRequest(t, req, http.StatusOK)
+               doc := NewHTMLParser(t, resp.Body)
+               editButtonCount := doc.doc.Find(".diff-file-header-actions a[href*='/_edit/']").Length()
+               assert.Greater(t, editButtonCount, 0, "Expected to find a button to edit a file in the PR diff view but there were none")
+
+               user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
+               repoForked := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerName: "user1", Name: "repo1"})
+               // delete the head repository and revisit the PR diff view
+               err := repo_service.DeleteRepositoryDirectly(db.DefaultContext, user2, repoForked.ID)
+               assert.NoError(t, err)
+
+               req = NewRequest(t, "GET", "/user2/repo1/pulls/6/files")
+               resp = session.MakeRequest(t, req, http.StatusOK)
+               doc = NewHTMLParser(t, resp.Body)
+               editButtonCount = doc.doc.Find(".diff-file-header-actions a[href*='/_edit/']").Length()
+               assert.EqualValues(t, editButtonCount, 0, "Expected not to find a button to edit a file in the PR diff view because head repository has been deleted")
+       })
 }