feat: implement pagination for MR discussions

This uses the gitlab.Scan function to iterate over all discussions and
handle errors after the iterator is exhausted. The test for non-200s is
no longer needed as the Scan function transforms such responses to
standard errors.
This commit is contained in:
Jakub F. Bortlík
2026-02-17 18:31:05 +01:00
parent 3d2828a950
commit 129b83bef4
2 changed files with 6 additions and 18 deletions

View File

@@ -127,17 +127,6 @@ func TestListDiscussions(t *testing.T) {
data, _ := getFailData(t, svc, request)
checkErrorFromGitlab(t, data, "Could not list discussions")
})
t.Run("Handles non-200s from Gitlab client", func(t *testing.T) {
request := makeRequest(t, http.MethodPost, "/mr/discussions/list", DiscussionsRequest{Blacklist: []string{}})
svc := middleware(
discussionsListerService{testProjectData, fakeDiscussionsLister{testBase: testBase{status: http.StatusSeeOther}}},
withMr(testProjectData, fakeMergeRequestLister{}),
withPayloadValidation(methodToPayload{http.MethodPost: newPayload[DiscussionsRequest]}),
withMethodCheck(http.MethodPost),
)
data, _ := getFailData(t, svc, request)
checkNon200(t, data, "Could not list discussions", "/mr/discussions/list")
})
t.Run("Handles error from emoji service", func(t *testing.T) {
request := makeRequest(t, http.MethodPost, "/mr/discussions/list", DiscussionsRequest{Blacklist: []string{}})
svc := middleware(