use figma_api::models::GetFile;
use figma_api::models::GetImageFillsResponseBody;
use figma_api::models::Node;
use serde_json;
use std::fs;
use std::path::Path;
fn read_json_file<P: AsRef<Path>>(path: P) -> String {
fs::read_to_string(path).expect("Failed to read JSON file")
}
#[test]
fn test_deserialize_file_response_primitive() {
let json = read_json_file("../examples/__primitive__.json");
let result = serde_json::from_str::<GetFile>(&json);
assert!(
result.is_ok(),
"Failed to deserialize JSON: {:?}",
result.err()
);
}
#[test]
fn test_deserialize_node() {
let json = read_json_file("../examples/__rectangle__.json");
let result = serde_json::from_str::<Node>(&json);
println!("Deserialization result: {:?}", result);
assert!(
result.is_ok(),
"Failed to deserialize Node: {:?}",
result.err()
);
}
#[test]
fn test_deserialize_file_response_full() {
let json = read_json_file("../examples/__test__.json");
let jd = &mut serde_json::Deserializer::from_str(&json);
let result: Result<GetFile, _> = serde_path_to_error::deserialize(jd);
match result {
Ok(_) => {}
Err(err) => {
let path = err.path().to_string();
println!("❌ Deserialization failed at path: {}", path);
println!("📎 Error: {}", err);
panic!("Deserialization failed at path: {}", path);
}
}
}