use crap4rust::export::Export;
#[test]
fn export_deserializes_empty_data_array() {
let json = r#"{"data": []}"#;
let export: Export = serde_json::from_str(json).expect("deserialize export");
assert!(export.data.is_empty());
}
#[test]
fn export_deserializes_multiple_functions_in_one_chunk() {
let json = r#"{
"data": [
{
"functions": [
{"filenames": ["src/a.rs"], "regions": [[1, 1, 2, 2, 1, 0, 0, 0]]},
{"filenames": ["src/b.rs"], "regions": [[3, 1, 4, 2, 0, 0, 0, 0]]}
]
}
]
}"#;
let export: Export = serde_json::from_str(json).expect("deserialize export");
assert_eq!(export.data.len(), 1);
assert_eq!(export.data[0].functions.len(), 2);
}
#[test]
fn export_function_deserializes_multiple_filenames() {
let json = r#"{
"data": [
{
"functions": [
{"filenames": ["src/a.rs", "src/a_alias.rs"], "regions": [[1, 1, 2, 2, 1, 0, 0, 0]]}
]
}
]
}"#;
let export: Export = serde_json::from_str(json).expect("deserialize export");
assert_eq!(
export.data[0].functions[0].filenames,
vec!["src/a.rs", "src/a_alias.rs"]
);
}