mirror of
https://github.com/katanemo/plano.git
synced 2026-06-17 15:25:17 +02:00
add tests for parse response
This commit is contained in:
parent
908b1f4627
commit
5df7490322
1 changed files with 43 additions and 0 deletions
|
|
@ -198,3 +198,46 @@ user: "seattle"
|
|||
assert_eq!(expected_prompt, prompt);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_parse_response() {
|
||||
let router = RouterModelV1::new(
|
||||
"route1: description1\nroute2: description2".to_string(),
|
||||
"test-model".to_string(),
|
||||
);
|
||||
|
||||
// Case 1: Valid JSON with non-empty route
|
||||
let input = r#"{"route": "route1"}"#;
|
||||
let result = router.parse_response(input).unwrap();
|
||||
assert_eq!(result, Some("route1".to_string()));
|
||||
|
||||
// Case 2: Valid JSON with empty route
|
||||
let input = r#"{"route": ""}"#;
|
||||
let result = router.parse_response(input).unwrap();
|
||||
assert_eq!(result, None);
|
||||
|
||||
// Case 3: Valid JSON with null route
|
||||
let input = r#"{"route": null}"#;
|
||||
let result = router.parse_response(input).unwrap();
|
||||
assert_eq!(result, None);
|
||||
|
||||
// Case 4: JSON missing route field
|
||||
let input = r#"{}"#;
|
||||
let result = router.parse_response(input).unwrap();
|
||||
assert_eq!(result, None);
|
||||
|
||||
// Case 5: Malformed JSON
|
||||
let input = r#"{"route": "route1""#; // missing closing }
|
||||
let result = router.parse_response(input);
|
||||
assert!(result.is_err());
|
||||
|
||||
// Case 6: Single quotes and \n in JSON
|
||||
let input = "{'route': 'route2'}\\n";
|
||||
let result = router.parse_response(input).unwrap();
|
||||
assert_eq!(result, Some("route2".to_string()));
|
||||
|
||||
// Case 7: Code block marker
|
||||
let input = "```json\n{\"route\": \"route1\"}\n```";
|
||||
let result = router.parse_response(input).unwrap();
|
||||
assert_eq!(result, Some("route1".to_string()));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue