mod common;
use serde_json::Value;
fn pinned_contract() -> Value {
serde_json::from_str(include_str!("../contract/gwiki.contract.json")).expect("pinned contract")
}
#[test]
fn contract_builder_matches_pinned_json() {
let actual = serde_json::to_value(gobby_wiki::contract::contract()).expect("contract json");
assert_eq!(actual, pinned_contract());
}
#[test]
fn contract_command_emits_pinned_json() {
let output = common::gwiki_command()
.args(["contract", "--format", "json"])
.output()
.expect("run gwiki contract");
assert!(
output.status.success(),
"gwiki contract failed\nstdout:\n{}\nstderr:\n{}",
String::from_utf8_lossy(&output.stdout),
String::from_utf8_lossy(&output.stderr)
);
let actual: Value = serde_json::from_slice(&output.stdout).expect("contract stdout json");
assert_eq!(actual, pinned_contract());
}