@@ -212,105 +212,3 @@ pub fn encode_header<T: Serialize>(v: T, schema: EndpointSchema) -> Result<Strin
212212 }
213213 Ok ( s)
214214}
215-
216- #[ cfg( test) ]
217- mod tests {
218- use super :: * ;
219- use crate :: libs:: error_code:: ErrorCode ;
220- use std:: str:: FromStr ;
221-
222- #[ test]
223- fn endpoint_schema_defaults_errors ( ) {
224- let schema: EndpointSchema = serde_json:: from_value ( serde_json:: json!( {
225- "name" : "Login" ,
226- "code" : 10001 ,
227- "parameters" : [ ] ,
228- "returns" : [ ] ,
229- "roles" : [ ]
230- } ) )
231- . unwrap ( ) ;
232-
233- assert ! ( schema. errors. is_empty( ) ) ;
234- }
235-
236- #[ test]
237- fn endpoint_schema_reads_error_definitions ( ) {
238- let schema: EndpointSchema = serde_json:: from_value ( serde_json:: json!( {
239- "name" : "Login" ,
240- "code" : 10001 ,
241- "parameters" : [ ] ,
242- "returns" : [ ] ,
243- "roles" : [ ] ,
244- "errors" : [
245- {
246- "name" : "WrongPassword" ,
247- "code" : "ErrorCode::Unauthorized" ,
248- "message" : "Wrong password" ,
249- "fields" : [ ]
250- } ,
251- {
252- "name" : "PasswordTooShort" ,
253- "code" : "ErrorCode::BadRequest" ,
254- "message" : "Password too short" ,
255- "fields" : [
256- { "name" : "min_length" , "ty" : "Int32" }
257- ]
258- }
259- ]
260- } ) )
261- . unwrap ( ) ;
262-
263- assert_eq ! ( schema. errors. len( ) , 2 ) ;
264- assert_eq ! ( schema. errors[ 0 ] . code. variant( ) , "Unauthorized" ) ;
265- assert_eq ! ( schema. errors[ 1 ] . fields[ 0 ] . name, "min_length" ) ;
266- }
267-
268- #[ test]
269- fn endpoint_error_code_ref_serializes_as_typed_ref ( ) {
270- let value = serde_json:: to_value ( EndpointErrorCodeRef :: new ( "BadRequest" ) ) . unwrap ( ) ;
271-
272- assert_eq ! (
273- value,
274- serde_json:: json!( {
275- "ty" : {
276- "EnumRef" : {
277- "name" : "ErrorCode"
278- }
279- } ,
280- "variant" : "BadRequest"
281- } )
282- ) ;
283-
284- let parsed: EndpointErrorCodeRef = serde_json:: from_value ( value) . unwrap ( ) ;
285- assert_eq ! ( parsed. variant( ) , "BadRequest" ) ;
286- }
287-
288- #[ test]
289- fn endpoint_error_code_ref_rejects_wrong_paths ( ) {
290- assert ! (
291- serde_json:: from_value:: <EndpointErrorCodeRef >( serde_json:: json!( "BadRequest" ) )
292- . is_err( )
293- ) ;
294- assert ! (
295- serde_json:: from_value:: <EndpointErrorCodeRef >( serde_json:: json!( "UserRole::Admin" ) )
296- . is_err( )
297- ) ;
298- }
299-
300- #[ test]
301- fn error_code_parses_names_and_numeric_codes ( ) {
302- assert_eq ! (
303- ErrorCode :: from_str( "BadRequest" ) . unwrap( ) ,
304- ErrorCode :: BAD_REQUEST
305- ) ;
306- assert_eq ! (
307- ErrorCode :: from_str( "BAD_REQUEST" ) . unwrap( ) ,
308- ErrorCode :: BAD_REQUEST
309- ) ;
310- assert_eq ! (
311- ErrorCode :: from_str( "100777" ) . unwrap( ) ,
312- ErrorCode :: new( 100777 )
313- ) ;
314- assert ! ( ErrorCode :: from_str( "not a code" ) . is_err( ) ) ;
315- }
316- }
0 commit comments