//! Client generation accepts unusual method names and reports invalid parameter names. use serde_json::json; #[test] fn underscore_segments_and_empty_params_do_not_panic() { for name in ["_internal", "a__b", "__"] { for params in [ json!([]), json!([{"name":"value","schema":{"type":"string"}}]), ] { let doc = json!({"methods":[{"name":name,"params":params,"result":{"schema":{"type":"null"}}}]}); syn::parse_file(&sausage_interface::client_rs("probe", &doc).unwrap()).unwrap(); } } } #[test] fn unnamed_param_returns_error() { let doc = json!({"methods":[{"name":"call","params":[{"schema":{"type":"string"}}],"result":{"schema":{"type":"null"}}}]}); assert!(sausage_interface::client_rs("probe", &doc).is_err()); } #[test] fn invalid_endpoint_identifier_returns_error() { assert!( sausage_interface::client_rs( "probe", &json!({"x-sausage-endpoints":{"bad-name":{"methods":[]}}}) ) .is_err() ); }