#![deny(clippy::all)]
use bytes::Bytes;
use http::{HeaderMap, StatusCode};
use insta::assert_snapshot;
use parlov_analysis::existence::ExistenceAnalyzer;
use parlov_analysis::Analyzer;
use parlov_core::{OracleResult, ProbeSet, ResponseSurface};
use parlov_output::{render_json, render_table};
fn surface(status: u16) -> ResponseSurface {
ResponseSurface {
status: StatusCode::from_u16(status).expect("valid status code"),
headers: HeaderMap::new(),
body: Bytes::new(),
timing_ns: 0,
}
}
fn probe_set(baseline: u16, probe: u16) -> ProbeSet {
ProbeSet {
baseline: vec![surface(baseline), surface(baseline), surface(baseline)],
probe: vec![surface(probe), surface(probe), surface(probe)],
}
}
fn run_analyze(baseline: u16, probe: u16) -> OracleResult {
ExistenceAnalyzer.analyze(&probe_set(baseline, probe))
}
#[test]
fn snap_patch_422_vs_404_table() {
assert_snapshot!("patch_table_422_vs_404", render_table(&run_analyze(422, 404)));
}
#[test]
fn snap_patch_422_vs_404_json() {
assert_snapshot!(
"patch_json_422_vs_404",
render_json(&run_analyze(422, 404)).expect("serialization failed")
);
}