use crate::llm::json_parsing::*;
#[test]
fn a_multi_line_fenced_block_parses() {
let content =
"Here is the review:\n```json\n{\n \"findings\": [\n {\"line\": 1}\n ]\n}\n```\ndone";
match extract_json(content) {
Some(Extracted::Complete(v)) => assert_eq!(v["findings"][0]["line"], 1),
other => panic!("expected Complete, got {other:?}"),
}
}
#[test]
fn crlf_line_endings_in_a_fence_parse() {
let content = "```json\r\n{\r\n \"a\": 1\r\n}\r\n```";
match extract_json(content) {
Some(Extracted::Complete(v)) => assert_eq!(v["a"], 1),
other => panic!("expected Complete, got {other:?}"),
}
}
#[test]
fn an_indented_closing_fence_parses() {
let content = "```json\n{\n \"a\": 1\n}\n ```";
match extract_json(content) {
Some(Extracted::Complete(v)) => assert_eq!(v["a"], 1),
other => panic!("expected Complete, got {other:?}"),
}
}