@@ -167,6 +167,58 @@ func TestUndeclaredCookieError(t *testing.T) {
167167 assert .Equal (t , "tracking" , err .ParameterName )
168168}
169169
170+ func TestReadOnlyPropertyError (t * testing.T ) {
171+ err := ReadOnlyPropertyError (
172+ "$.body.id" ,
173+ "id" ,
174+ "user-123" ,
175+ "/users" ,
176+ "POST" ,
177+ 10 ,
178+ 5 ,
179+ )
180+
181+ assert .NotNil (t , err )
182+ assert .Equal (t , StrictValidationType , err .ValidationType )
183+ assert .Equal (t , StrictSubTypeReadOnlyProperty , err .ValidationSubType )
184+ assert .Contains (t , err .Message , "readOnly" )
185+ assert .Contains (t , err .Message , "'id'" )
186+ assert .Contains (t , err .Message , "'$.body.id'" )
187+ assert .Contains (t , err .Reason , "readOnly" )
188+ assert .Contains (t , err .HowToFix , "id" )
189+ assert .Equal (t , "/users" , err .RequestPath )
190+ assert .Equal (t , "POST" , err .RequestMethod )
191+ assert .Equal (t , "id" , err .ParameterName )
192+ assert .Equal (t , 10 , err .SpecLine )
193+ assert .Equal (t , 5 , err .SpecCol )
194+ }
195+
196+ func TestWriteOnlyPropertyError (t * testing.T ) {
197+ err := WriteOnlyPropertyError (
198+ "$.body.password" ,
199+ "password" ,
200+ "secret" ,
201+ "/users/123" ,
202+ "GET" ,
203+ 20 ,
204+ 3 ,
205+ )
206+
207+ assert .NotNil (t , err )
208+ assert .Equal (t , StrictValidationType , err .ValidationType )
209+ assert .Equal (t , StrictSubTypeWriteOnlyProperty , err .ValidationSubType )
210+ assert .Contains (t , err .Message , "writeOnly" )
211+ assert .Contains (t , err .Message , "'password'" )
212+ assert .Contains (t , err .Message , "'$.body.password'" )
213+ assert .Contains (t , err .Reason , "writeOnly" )
214+ assert .Contains (t , err .HowToFix , "password" )
215+ assert .Equal (t , "/users/123" , err .RequestPath )
216+ assert .Equal (t , "GET" , err .RequestMethod )
217+ assert .Equal (t , "password" , err .ParameterName )
218+ assert .Equal (t , 20 , err .SpecLine )
219+ assert .Equal (t , 3 , err .SpecCol )
220+ }
221+
170222func TestTruncateForContext_String (t * testing.T ) {
171223 // Short string should not be truncated
172224 short := truncateForContext ("short" )
0 commit comments