fix(issue): show merged pull requests as merged in issue lists and search

issue list --kind all, milestone issue list and search pr reported a
merged pull request as closed. Their state is now merged, in tables and
in JSON, which also tells issues and pull requests apart by kind.

Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
bircni committed 2026-10-12 00:14:30 +02:00
1 parent 1035ff551b
commit 1749d2f7f6
3 files changed
+31 -3

No files matched your search

+19
View File
@@ -77,6 +77,25 @@ func TestIssueDependenciesMapReferencesAndTreatMissingSupportAsNone(t *testing.T
require.Equal(t, IssueDependencies{}, dependencies)
}
func TestDiscussionsTellPullRequestsAndMergesApart(t *testing.T) {
list := `[{"number":1,"state":"open"},{"number":2,"state":"closed","pull_request":{"merged":false}},` +
`{"number":3,"state":"closed","pull_request":{"merged":true}},{"number":4,"state":"open","pull_request":{"merged":false}}]`
client := newTestClient(t, http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
_, _ = w.Write([]byte(list))
}))
want := []struct{ kind, state string }{{KindIssue, "open"}, {KindPull, "closed"}, {KindPull, "merged"}, {KindPull, "open"}}
issues, _, err := (Issues{Client: client, Repository: "alice/project"}).List(context.Background(), ListOptions{Kind: "all", State: "all", Limit: 30, Page: 1})
require.NoError(t, err)
found, err := (Issues{Client: client, Repository: "alice/project"}).Search(context.Background(), DiscussionSearchOptions{State: "all", Limit: 30, Page: 1})
require.NoError(t, err)
require.Len(t, issues, len(want))
for i, item := range want {
require.Equal(t, item.kind, issues[i].Kind, issues[i].Number)
require.Equal(t, item.state, issues[i].State, issues[i].Number)
require.Equal(t, item.state, found[i].State, found[i].Number)
}
}
func TestIssueTemplatesAcceptCheckboxOptionObjects(t *testing.T) {
body := `[{"name":"Form","body":[{"type":"checkboxes","attributes":{"options":[{"label":"I searched","required":true}]}}]}]`
client := newTestClient(t, http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {