Skip to content

Commit 28629cc

Browse files
hyperpolymathclaude
andcommitted
fix(pa15): merge seam_contract_tests rebase conflict
Keep crash_report_{has_schema_version,old_json_defaults} from 320256b alongside AbductReport/AmuckReport/AxialReport helper + round-trip + backward-compat tests from 87578d9. Deduplicates bare has_schema_version tests; all 22 seam tests green. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 9c29ae9 commit 28629cc

1 file changed

Lines changed: 14 additions & 73 deletions

File tree

tests/seam_contract_tests.rs

Lines changed: 14 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -291,8 +291,7 @@ fn old_report_without_schema_version_deserializes_with_default() {
291291
);
292292
}
293293

294-
<<<<<<< HEAD
295-
// ─── schema_version on subsidiary report types ───────────────────────────
294+
// ─── schema_version on CrashReport ──────────────────────────────────────
296295

297296
#[test]
298297
fn crash_report_has_schema_version() {
@@ -305,69 +304,23 @@ fn crash_report_has_schema_version() {
305304
stdout: String::new(),
306305
};
307306
let json: Value = serde_json::to_value(&r).expect("serialize");
308-
assert_eq!(json["schema_version"].as_str(), Some("2.5"),
309-
"CrashReport must carry schema_version for schema-drift detection");
307+
assert_eq!(
308+
json["schema_version"].as_str(),
309+
Some("2.5"),
310+
"CrashReport must carry schema_version for schema-drift detection"
311+
);
310312
}
311313

312314
#[test]
313315
fn crash_report_old_json_defaults_schema_version() {
314316
let json_str = r#"{"timestamp":"2026-01-01T00:00:00Z","signal":null,"backtrace":null,"stderr":"","stdout":""}"#;
315317
let r: CrashReport = serde_json::from_str(json_str).expect("deserialize old CrashReport");
316-
assert_eq!(r.schema_version, "2.5",
317-
"old CrashReport missing schema_version must default to '2.5'");
318-
}
319-
320-
#[test]
321-
fn axial_report_has_schema_version() {
322-
let r = axial::AxialReport {
323-
schema_version: "2.5".to_string(),
324-
created_at: "2026-01-01T00:00:00Z".to_string(),
325-
target: std::path::PathBuf::from("/tmp/test"),
326-
executed_program: None,
327-
repeat: 1,
328-
observed_runs: 0,
329-
observed_reports: 0,
330-
language: "en".to_string(),
331-
run_observations: Vec::new(),
332-
report_observations: Vec::new(),
333-
signal_counts: std::collections::BTreeMap::new(),
334-
recommendations: Vec::new(),
335-
aspell: None,
336-
};
337-
let json: Value = serde_json::to_value(&r).expect("serialize");
338-
assert_eq!(json["schema_version"].as_str(), Some("2.5"),
339-
"AxialReport must carry schema_version");
340-
}
341-
342-
#[test]
343-
fn amuck_report_has_schema_version() {
344-
let r = amuck::AmuckReport {
345-
schema_version: "2.5".to_string(),
346-
created_at: "2026-01-01T00:00:00Z".to_string(),
347-
target: std::path::PathBuf::from("/tmp/test"),
348-
source_spec: None,
349-
preset: "light".to_string(),
350-
max_combinations: 1,
351-
output_dir: std::path::PathBuf::from("runtime/amuck"),
352-
combinations_planned: 0,
353-
combinations_run: 0,
354-
outcomes: Vec::new(),
355-
};
356-
let json: Value = serde_json::to_value(&r).expect("serialize");
357-
assert_eq!(json["schema_version"].as_str(), Some("2.5"),
358-
"AmuckReport must carry schema_version");
318+
assert_eq!(
319+
r.schema_version, "2.5",
320+
"old CrashReport missing schema_version must default to '2.5'"
321+
);
359322
}
360323

361-
#[test]
362-
fn abduct_report_has_schema_version() {
363-
let r = abduct::AbductReport {
364-
schema_version: "2.5".to_string(),
365-
created_at: "2026-01-01T00:00:00Z".to_string(),
366-
target: std::path::PathBuf::from("/tmp/test"),
367-
source_root: std::path::PathBuf::from("."),
368-
workspace_dir: std::path::PathBuf::from("runtime/abduct"),
369-
dependency_scope: "direct".to_string(),
370-
=======
371324
// ─── AbductReport schema pin ─────────────────────────────────────────────
372325

373326
fn minimal_abduct_report() -> AbductReport {
@@ -378,23 +331,10 @@ fn minimal_abduct_report() -> AbductReport {
378331
source_root: std::path::PathBuf::from("src"),
379332
workspace_dir: std::path::PathBuf::from("runtime/abduct/test"),
380333
dependency_scope: "none".to_string(),
381-
>>>>>>> 87578d9 (feat(pa15): complete P2-A15 must-items — schema_version, headless, adjust.ncl, seam tests)
382334
selected_files: 0,
383335
locked_files: 0,
384336
mtime_shifted_files: 0,
385337
mtime_offset_days: 0,
386-
<<<<<<< HEAD
387-
time_mode: "real".to_string(),
388-
time_scale: None,
389-
virtual_now: None,
390-
notes: Vec::new(),
391-
files: Vec::new(),
392-
execution: None,
393-
};
394-
let json: Value = serde_json::to_value(&r).expect("serialize");
395-
assert_eq!(json["schema_version"].as_str(), Some("2.5"),
396-
"AbductReport must carry schema_version");
397-
=======
398338
time_mode: "normal".to_string(),
399339
time_scale: None,
400340
virtual_now: None,
@@ -493,7 +433,8 @@ fn old_amuck_report_without_schema_version_deserializes_with_default() {
493433
"combinations_run": 0,
494434
"outcomes": []
495435
}"#;
496-
let report: AmuckReport = serde_json::from_str(json_str).expect("deserialize old amuck report");
436+
let report: AmuckReport =
437+
serde_json::from_str(json_str).expect("deserialize old amuck report");
497438
assert_eq!(
498439
report.schema_version, "2.5",
499440
"old AmuckReport missing schema_version must default to '2.5'"
@@ -549,10 +490,10 @@ fn old_axial_report_without_schema_version_deserializes_with_default() {
549490
"observed_reports": 0,
550491
"language": "en"
551492
}"#;
552-
let report: AxialReport = serde_json::from_str(json_str).expect("deserialize old axial report");
493+
let report: AxialReport =
494+
serde_json::from_str(json_str).expect("deserialize old axial report");
553495
assert_eq!(
554496
report.schema_version, "2.5",
555497
"old AxialReport missing schema_version must default to '2.5'"
556498
);
557-
>>>>>>> 87578d9 (feat(pa15): complete P2-A15 must-items — schema_version, headless, adjust.ncl, seam tests)
558499
}

0 commit comments

Comments
 (0)