Skip to content

Commit

Permalink
tests: reviewer/requester timeline test
Browse files Browse the repository at this point in the history
  • Loading branch information
jbrill committed Dec 17, 2024
1 parent a1a498d commit 2647563
Showing 1 changed file with 98 additions and 0 deletions.
98 changes: 98 additions & 0 deletions github/issues_timeline_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,20 @@ import (
"net/http"
"strings"
"testing"
"time"

"github.com/google/go-cmp/cmp"
)

func parseTime(t *testing.T, value string) time.Time {
t.Helper()
parsedTime, err := time.Parse(time.RFC3339, value)
if err != nil {
t.Fatalf("failed to parse time: %v", err)
}
return parsedTime
}

func TestIssuesService_ListIssueTimeline(t *testing.T) {
t.Parallel()
client, mux, _ := setup(t)
Expand Down Expand Up @@ -255,3 +265,91 @@ func TestTimeline_Marshal(t *testing.T) {

testJSONMarshal(t, u, want)
}

func TestTimeline_ReviewRequests(t *testing.T) {
t.Parallel()
client, mux, _ := setup(t)

mux.HandleFunc("/repos/example-org/example-repo/issues/3/timeline", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, "GET")
fmt.Fprint(w, `[{
"id": 1234567890,
"url": "http://example.com/timeline/1",
"actor": {
"login": "actor-user",
"id": 1
},
"event": "review_requested",
"created_at": "2024-12-17T15:47:42Z",
"requested_reviewer": {
"login": "reviewer-user",
"id": 2
},
"review_requester": {
"login": "requester-user",
"id": 1
}
},
{
"id": 1234567891,
"url": "http://example.com/timeline/2",
"actor": {
"login": "actor-user",
"id": 1
},
"event": "review_request_removed",
"created_at": "2024-12-17T15:51:04Z",
"requested_reviewer": {
"login": "reviewer-user",
"id": 2
}
}]`)
})

ctx := context.Background()
events, _, err := client.Issues.ListIssueTimeline(ctx, "example-org", "example-repo", 3, nil)
if err != nil {
t.Errorf("Issues.ListIssueTimeline returned error: %v", err)
}

want := []*Timeline{
{
ID: Ptr(int64(1234567890)),
URL: Ptr("http://example.com/timeline/1"),
Actor: &User{
Login: Ptr("actor-user"),
ID: Ptr(int64(1)),
},
Event: Ptr("review_requested"),
CreatedAt: &Timestamp{parseTime(t, "2024-12-17T15:47:42Z")},
Reviewer: &User{
Login: Ptr("reviewer-user"),
ID: Ptr(int64(2)),
},
Requester: &User{
Login: Ptr("requester-user"),
ID: Ptr(int64(1)),
},
},
{
ID: Ptr(int64(1234567891)),
URL: Ptr("http://example.com/timeline/2"),
Actor: &User{
Login: Ptr("actor-user"),
ID: Ptr(int64(1)),
},
Event: Ptr("review_request_removed"),
CreatedAt: &Timestamp{parseTime(t, "2024-12-17T15:51:04Z")},
Reviewer: &User{
Login: Ptr("reviewer-user"),
ID: Ptr(int64(2)),
},
},
}

if !cmp.Equal(events, want) {
t.Errorf("Issues.ListIssueTimeline review request events = %+v, want %+v", events, want)
diff := cmp.Diff(events, want)
t.Errorf("Difference: %s", diff)
}
}

0 comments on commit 2647563

Please sign in to comment.