#[macro_export]
macro_rules! assert_json_snapshot {
($name:expr, $value:expr) => {{
let mut settings = ::insta::Settings::clone_current();
$crate::with_json_redactions(&mut settings);
settings.bind(|| {
::insta::assert_json_snapshot!($name, $value);
});
}};
($value:expr) => {{
let mut settings = ::insta::Settings::clone_current();
$crate::with_json_redactions(&mut settings);
settings.bind(|| {
::insta::assert_json_snapshot!($value);
});
}};
}
pub fn with_json_redactions(settings: &mut insta::Settings) {
settings.add_filter(r#""id"\s*:\s*\d+"#, r#""id": "[id]""#);
settings.add_filter(
r#""created_at"\s*:\s*"[^"]*""#,
r#""created_at": "[datetime]""#,
);
settings.add_filter(
r#""updated_at"\s*:\s*"[^"]*""#,
r#""updated_at": "[datetime]""#,
);
settings.add_filter(
r#""read_at"\s*:\s*("[^"]*"|null)"#,
r#""read_at": "[read_at]""#,
);
}