use std::error::Error;
use qubit_budget::json::JsonDecodeLimits;
use qubit_budget::json::JsonResource;
use qubit_json::decode::DiagnosticPolicy;
use qubit_json::decode::JsonDecodeErrorKind;
use qubit_json::decode::JsonDecodeStage;
use qubit_json::decode::NormalizingJsonDecodePolicy;
use qubit_json::decode::NormalizingJsonDecoder;
#[test]
fn test_lenient_domain_owns_its_public_types() {
let mut decoder = NormalizingJsonDecoder::with_limits(
NormalizingJsonDecodePolicy::builder()
.diagnostic_policy(DiagnosticPolicy::Redacted)
.build(),
JsonDecodeLimits::<JsonResource, usize>::default(),
);
let error = decoder
.decode_str::<u64>(r#""TOP_SECRET""#)
.expect_err("a string cannot deserialize into u64");
assert_eq!(error.kind(), JsonDecodeErrorKind::Deserialize);
assert_eq!(error.stage(), JsonDecodeStage::Deserialize);
assert_eq!(error.diagnostic_policy(), DiagnosticPolicy::Redacted);
assert!(!error.to_string().contains("TOP_SECRET"));
assert!(error.source().is_none());
}