@@ -188,6 +188,12 @@ func TestTUIToggleAddressedNoReview(t *testing.T) {
188188 }
189189}
190190
191+ // addressRequest is used to decode and validate POST body in tests
192+ type addressRequest struct {
193+ ReviewID int64 `json:"review_id"`
194+ Addressed bool `json:"addressed"`
195+ }
196+
191197func TestTUIAddressReviewInBackgroundSuccess (t * testing.T ) {
192198 ts := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
193199 switch {
@@ -198,13 +204,15 @@ func TestTUIAddressReviewInBackgroundSuccess(t *testing.T) {
198204 review := storage.Review {ID : 10 , Addressed : false }
199205 json .NewEncoder (w ).Encode (review )
200206 case r .URL .Path == "/api/review/address" && r .Method == http .MethodPost :
201- var req map [string ]interface {}
202- json .NewDecoder (r .Body ).Decode (& req )
203- if req ["review_id" ].(float64 ) != 10 {
204- t .Errorf ("Expected review_id=10, got %v" , req ["review_id" ])
207+ var req addressRequest
208+ if err := json .NewDecoder (r .Body ).Decode (& req ); err != nil {
209+ t .Fatalf ("Failed to decode request body: %v" , err )
205210 }
206- if req ["addressed" ].(bool ) != true {
207- t .Errorf ("Expected addressed=true, got %v" , req ["addressed" ])
211+ if req .ReviewID != 10 {
212+ t .Errorf ("Expected review_id=10, got %d" , req .ReviewID )
213+ }
214+ if req .Addressed != true {
215+ t .Errorf ("Expected addressed=true, got %v" , req .Addressed )
208216 }
209217 json .NewEncoder (w ).Encode (map [string ]bool {"success" : true })
210218 default :
@@ -233,6 +241,10 @@ func TestTUIAddressReviewInBackgroundSuccess(t *testing.T) {
233241 if result .reviewView {
234242 t .Error ("Expected reviewView=false for queue view command" )
235243 }
244+ // reviewID is intentionally 0 for queue view commands (only jobID is set)
245+ if result .reviewID != 0 {
246+ t .Errorf ("Expected reviewID=0 for queue view, got %d" , result .reviewID )
247+ }
236248}
237249
238250func TestTUIAddressReviewInBackgroundNotFound (t * testing.T ) {
@@ -320,6 +332,17 @@ func TestTUIAddressReviewInBackgroundAddressError(t *testing.T) {
320332 review := storage.Review {ID : 10 , Addressed : false }
321333 json .NewEncoder (w ).Encode (review )
322334 case r .URL .Path == "/api/review/address" && r .Method == http .MethodPost :
335+ // Validate request body before returning error
336+ var req addressRequest
337+ if err := json .NewDecoder (r .Body ).Decode (& req ); err != nil {
338+ t .Fatalf ("Failed to decode request body: %v" , err )
339+ }
340+ if req .ReviewID != 10 {
341+ t .Errorf ("Expected review_id=10, got %d" , req .ReviewID )
342+ }
343+ if req .Addressed != true {
344+ t .Errorf ("Expected addressed=true, got %v" , req .Addressed )
345+ }
323346 w .WriteHeader (http .StatusInternalServerError )
324347 default :
325348 t .Fatalf ("Unexpected request: %s %s" , r .Method , r .URL .Path )
0 commit comments