package inquiry import ( "encoding/json" "testing" "tm/pkg/security" ) func TestUpdateInquiryStatusFormValidation(t *testing.T) { xssPolicy := security.NewXSSPolicy() cases := []struct { name string body string wantErr bool }{ {"status only", `{"status":"reviewed"}`, false}, {"capitalized status", `{"status":"Reviewed"}`, false}, {"valid with reason", `{"status":"reviewed","reason":"Initial review completed"}`, false}, {"user payload", `{"status":"reviewed","reason":"test","description":"test"}`, false}, {"invalid status", `{"status":"done"}`, true}, } for _, tc := range cases { var form UpdateInquiryStatusForm if err := json.Unmarshal([]byte(tc.body), &form); err != nil { t.Fatalf("%s: unmarshal failed: %v", tc.name, err) } err := form.ValidateAndSanitize(xssPolicy) if (err != nil) != tc.wantErr { t.Errorf("%s: got err=%v wantErr=%v", tc.name, err, tc.wantErr) } } }