@@ -20,12 +20,17 @@ import (
2020
2121type fakeReviewService struct {
2222 triggerErr error
23+ trigger reviewcore.TriggerResult
24+ list reviewcore.SessionReviews
2325}
2426
2527func (f * fakeReviewService ) Trigger (context.Context , domain.SessionID ) (reviewcore.TriggerResult , error ) {
2628 if f .triggerErr != nil {
2729 return reviewcore.TriggerResult {}, f .triggerErr
2830 }
31+ if f .trigger .ReviewerHandleID != "" || f .trigger .Run .ID != "" || f .trigger .Reviews != nil || f .trigger .CreatedRuns != nil {
32+ return f .trigger , nil
33+ }
2934 return reviewcore.TriggerResult {Run : domain.ReviewRun {ID : "run-1" }, Created : true }, nil
3035}
3136
@@ -34,7 +39,7 @@ func (f *fakeReviewService) Submit(context.Context, domain.SessionID, string, do
3439}
3540
3641func (f * fakeReviewService ) List (context.Context , domain.SessionID ) (reviewcore.SessionReviews , error ) {
37- return reviewcore. SessionReviews {} , nil
42+ return f . list , nil
3843}
3944
4045func newReviewTestServer (t * testing.T , svc reviewsvc.Manager ) * httptest.Server {
@@ -59,3 +64,54 @@ func TestReviewsTrigger_MissingReviewerBinaryReturns422WithCause(t *testing.T) {
5964 t .Fatalf ("message = %q, want reviewer binary cause" , got .Message )
6065 }
6166}
67+
68+ func TestReviewsListIncludesReviewStates (t * testing.T ) {
69+ srv := newReviewTestServer (t , & fakeReviewService {list : reviewcore.SessionReviews {
70+ ReviewerHandleID : "review-mer-1" ,
71+ Runs : []domain.ReviewRun {{ID : "run-1" , PRURL : "https://github.com/o/r/pull/1" , TargetSHA : "sha1" }},
72+ Reviews : []reviewcore.PRReviewState {{PRURL : "https://github.com/o/r/pull/1" , PRNumber : 1 , TargetSHA : "sha1" , Status : reviewcore .ReviewStateUpToDate }},
73+ }})
74+
75+ body , status , headers := doRequest (t , srv , "GET" , "/api/v1/sessions/mer-1/reviews" , "" )
76+ assertJSON (t , headers )
77+ if status != http .StatusOK {
78+ t .Fatalf ("status = %d body=%s" , status , body )
79+ }
80+ if ! strings .Contains (string (body ), `"reviews"` ) || ! strings .Contains (string (body ), `"up_to_date"` ) || ! strings .Contains (string (body ), `"reviewerHandleId":"review-mer-1"` ) {
81+ t .Fatalf ("body missing review states/handle: %s" , body )
82+ }
83+ if strings .Contains (string (body ), `"items"` ) || strings .Contains (string (body ), `"reviewItems"` ) || strings .Contains (string (body ), `"reviewRuns"` ) {
84+ t .Fatalf ("body contains deprecated review item aliases: %s" , body )
85+ }
86+ }
87+
88+ func TestReviewsTriggerIncludesBatchFields (t * testing.T ) {
89+ run1 := domain.ReviewRun {ID : "run-1" , PRURL : "https://github.com/o/r/pull/1" , TargetSHA : "sha1" }
90+ run2 := domain.ReviewRun {ID : "run-2" , PRURL : "https://github.com/o/r/pull/2" , TargetSHA : "sha2" }
91+ srv := newReviewTestServer (t , & fakeReviewService {trigger : reviewcore.TriggerResult {
92+ Run : run1 ,
93+ ReviewerHandleID : "review-mer-1" ,
94+ Created : true ,
95+ CreatedRuns : []domain.ReviewRun {run1 , run2 },
96+ Reviews : []reviewcore.PRReviewState {
97+ {PRURL : run1 .PRURL , PRNumber : 1 , TargetSHA : run1 .TargetSHA , Status : reviewcore .ReviewStateRunning , LatestRun : & run1 },
98+ {PRURL : run2 .PRURL , PRNumber : 2 , TargetSHA : run2 .TargetSHA , Status : reviewcore .ReviewStateRunning , LatestRun : & run2 },
99+ },
100+ }})
101+
102+ body , status , headers := doRequest (t , srv , "POST" , "/api/v1/sessions/mer-1/reviews/trigger" , "" )
103+ assertJSON (t , headers )
104+ if status != http .StatusCreated {
105+ t .Fatalf ("status = %d body=%s" , status , body )
106+ }
107+ for _ , want := range []string {`"reviews"` , `"running"` , `"run-1"` , `"run-2"` , `"reviewerHandleId":"review-mer-1"` } {
108+ if ! strings .Contains (string (body ), want ) {
109+ t .Fatalf ("body missing %s: %s" , want , body )
110+ }
111+ }
112+ for _ , unwanted := range []string {`"reviewItems"` , `"items"` , `"createdReviews"` , `"createdRuns"` , `"reviewRuns"` , `"review":` } {
113+ if strings .Contains (string (body ), unwanted ) {
114+ t .Fatalf ("body contains deprecated field %s: %s" , unwanted , body )
115+ }
116+ }
117+ }
0 commit comments