#![allow(non_snake_case)]
use ag_id::{DeriveDomain, Did};
struct Vector {
domain: DeriveDomain,
input: &'static [u8],
expected: &'static str,
}
#[test]
fn did__derive__cross_platform_vectors__match_hardcoded_values() {
let vectors = [Vector {
domain: DeriveDomain::User,
input: b"alice@example.com",
expected: "did:agid:2mDwJhrvWdJsqHAhRTQWpaLgWmnTZxEZJv6hnDmjiYtt",
}];
for v in &vectors {
let id = Did::derive(v.domain, v.input);
let s = id.to_string();
assert_eq!(
s, v.expected,
"platform mismatch!\n input: {:?}\n got: {}\n expected: {}",
v.input, s, v.expected
);
}
}
#[test]
fn did__display__format__is_stable_base58() {
let id = Did::derive(DeriveDomain::User, b"format-test");
let s = id.to_string();
assert!(s.starts_with("did:agid:"));
let payload = &s["did:agid:".len()..];
for c in payload.chars() {
assert!(
"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz".contains(c),
"non-base58 char: {c}"
);
}
}