loading up the forgejo repo on tangled to test page performance
1// Copyright 2025 The Forgejo Authors. All rights reserved.
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4package integration
5
6import (
7 "net/http"
8 "net/url"
9 "testing"
10
11 auth_model "forgejo.org/models/auth"
12 api "forgejo.org/modules/structs"
13 "forgejo.org/tests"
14)
15
16func TestPullEditable_ShowEditableLabel(t *testing.T) {
17 onGiteaRun(t, func(t *testing.T, forgejoURL *url.URL) {
18 t.Run("Show editable label if PR is editable", func(t *testing.T) {
19 defer tests.PrintCurrentTest(t)()
20 editable := true
21
22 setPREditable(t, editable)
23 testEditableLabelShown(t, editable)
24 })
25
26 t.Run("Don't show editable label if PR is not editable", func(t *testing.T) {
27 defer tests.PrintCurrentTest(t)()
28 editable := false
29
30 setPREditable(t, editable)
31 testEditableLabelShown(t, editable)
32 })
33 })
34}
35
36func setPREditable(t *testing.T, editable bool) {
37 t.Helper()
38 session := loginUser(t, "user1")
39 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository)
40
41 req := NewRequestWithJSON(t, "PATCH", "/api/v1/repos/user2/repo1/pulls/3", &api.EditPullRequestOption{
42 AllowMaintainerEdit: &editable,
43 }).AddTokenAuth(token)
44 session.MakeRequest(t, req, http.StatusCreated)
45}
46
47func testEditableLabelShown(t *testing.T, expectLabel bool) {
48 t.Helper()
49 session := loginUser(t, "user2")
50 req := NewRequest(t, "GET", "/user2/repo1/pulls/3")
51 resp := session.MakeRequest(t, req, http.StatusOK)
52 htmlDoc := NewHTMLParser(t, resp.Body)
53 htmlDoc.AssertElement(t, "#editable-label", expectLabel)
54}