use std::ffi::OsStr;
use qubit_redact::RedactedText;
use qubit_redact::RedactionPolicy;
use qubit_redact::Redactor;
use qubit_redact::formats::argv::ArgvItem;
#[test]
fn test_lib_exports_public_api() {
let policy = RedactionPolicy::default();
let redactor = Redactor::new(policy);
let field = redactor.redact_field("name", "Ada");
let _: &RedactedText = field.text();
assert_eq!(field.text().as_str(), "Ada");
let argv = [ArgvItem::plain(OsStr::new("client"))];
assert!(redactor.redact_argv(argv).text().as_str().contains("client"));
assert!(redactor.redact_env("HOME", "/tmp").text().as_str().contains("HOME"));
let output = redactor.text_composer().literal(" context").finish();
assert_eq!(output.text().as_str(), " context");
let mut batch = redactor.diagnostic_batch();
let item = batch.redact_field("name", "Ada");
let output = batch.finish_with_marker("<redaction incomplete>");
assert_eq!(output.text(item).as_str(), "Ada");
}