use amberfork_align::{DiffParams, LexicalCost, diff};
use amberfork_record::{Cassette, normalize};
const REFUND_TRIAGE: &str = include_str!("fixtures/refund-triage.cassette.json");
fn refund_triage() -> Cassette {
serde_json::from_str(REFUND_TRIAGE).expect("fixture is a valid cassette")
}
#[test]
fn a_recorded_run_does_not_fork_against_itself() {
let run = normalize(&refund_triage());
let result = diff(&run, &run, &LexicalCost, &DiffParams::default()).expect("self-align");
assert!(result.fork.is_none(), "a run must not fork against itself");
}
#[test]
fn every_step_of_a_recorded_run_has_content() {
let run = normalize(&refund_triage());
assert_eq!(run.steps.len(), 2);
assert!(
run.steps
.iter()
.all(|s| s.inputs.is_some() && s.outputs.is_some())
);
}
#[test]
fn normalized_run_shape_is_stable() {
let run = normalize(&refund_triage());
insta::assert_json_snapshot!(run);
}