diff options
Diffstat (limited to 'tests/integration/issue_subscribe_test.go')
-rw-r--r-- | tests/integration/issue_subscribe_test.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/integration/issue_subscribe_test.go b/tests/integration/issue_subscribe_test.go new file mode 100644 index 0000000..32001cd --- /dev/null +++ b/tests/integration/issue_subscribe_test.go @@ -0,0 +1,44 @@ +// Copyright 2024 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package integration + +import ( + "net/http" + "net/url" + "path" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestIssueSubscribe(t *testing.T) { + onGiteaRun(t, func(t *testing.T, giteaURL *url.URL) { + session := emptyTestSession(t) + testIssueSubscribe(t, *session, true) + }) +} + +func testIssueSubscribe(t *testing.T, session TestSession, unavailable bool) { + t.Helper() + + testIssue := "/user2/repo1/issues/1" + testPull := "/user2/repo1/pulls/2" + selector := ".issue-content-right .watching form" + + resp := session.MakeRequest(t, NewRequest(t, "GET", path.Join(testIssue)), http.StatusOK) + area := NewHTMLParser(t, resp.Body).Find(selector) + tooltip, exists := area.Attr("data-tooltip-content") + assert.EqualValues(t, unavailable, exists) + if unavailable { + assert.EqualValues(t, "Sign in to subscribe to this issue.", tooltip) + } + + resp = session.MakeRequest(t, NewRequest(t, "GET", path.Join(testPull)), http.StatusOK) + area = NewHTMLParser(t, resp.Body).Find(selector) + tooltip, exists = area.Attr("data-tooltip-content") + assert.EqualValues(t, unavailable, exists) + if unavailable { + assert.EqualValues(t, "Sign in to subscribe to this pull request.", tooltip) + } +} |