fabro/lib/foundation/fabro-api/tests/interview_option_round_trip.rs
2026-07-23 17:59:34 -04:00

33 lines
890 B
Rust

use std::any::{TypeId, type_name};
use fabro_api::types::InterviewOption as ApiInterviewOption;
use fabro_types::InterviewOption;
use serde_json::json;
#[test]
fn interview_option_reuses_canonical_type() {
assert_same_type::<ApiInterviewOption, InterviewOption>();
}
#[test]
fn interview_option_round_trips_representative_json() {
let value = json!({
"key": "approve",
"label": "Approve",
"description": "Approve the proposed changes.",
"preview": "diff --stat output"
});
let option: InterviewOption = serde_json::from_value(value.clone()).unwrap();
assert_eq!(serde_json::to_value(option).unwrap(), value);
}
fn assert_same_type<T: 'static, U: 'static>() {
assert_eq!(
TypeId::of::<T>(),
TypeId::of::<U>(),
"{} should be the same type as {}",
type_name::<T>(),
type_name::<U>()
);
}