feat(api): derive stable placeholder names for hidden profiles (#3224)

This commit is contained in:
Hampus authored and GitHub committed 2026-10-05 16:57:25 +02:00
1 parent 02c82f0038
commit 3093e7334b
30 files changed
+629 -65

No files matched your search

+29 -5
View File
@@ -1244,21 +1244,44 @@ mod tests {
}
fn assert_hidden(partial: &UserPartial) {
assert_eq!(partial.username, "HiddenUser");
assert_eq!(partial.discriminator, 0);
let expected = crate::pseudonym::pseudonym(partial.user_id);
assert_eq!(partial.username, expected.username);
assert_eq!(partial.discriminator, expected.discriminator);
assert_ne!(partial.username, "Ada");
assert_eq!(partial.global_name, None);
assert_eq!(partial.avatar_hash, None);
assert_eq!(partial.avatar_color, None);
assert_eq!(partial.banner_hash, None);
assert_eq!(partial.banner_color, None);
assert_eq!(partial.accent_color, None);
assert_ne!(partial.flags.unwrap_or_default() & PROFILE_HIDDEN, 0);
let api = partial.to_api_partial();
assert_eq!(api.username, expected.username);
assert_eq!(api.discriminator, format!("{:04}", expected.discriminator));
assert_eq!(api.flags & PROFILE_HIDDEN as i32, 0);
}
#[test]
fn a_masked_partial_matches_the_shared_development_vector() {
let api = styled(1_174_109_840_998_400_001, SPAMMER)
.to_partial()
.to_api_partial();
assert_eq!(
(api.username.as_str(), api.discriminator.as_str()),
("HiddenUser", "0000")
("MambaEgret", "6542")
);
assert_eq!(api.flags & PROFILE_HIDDEN as i32, 0);
assert_eq!(api.global_name, None);
assert_eq!(api.avatar, None);
}
#[test]
fn a_masked_partial_is_stable_across_reads() {
let first = styled(53, PROFILE_HIDDEN).to_partial();
let second = styled(53, PROFILE_HIDDEN).to_partial();
assert_eq!(
(first.username, first.discriminator),
(second.username, second.discriminator)
);
assert_ne!(api.flags & PROFILE_HIDDEN as i32, 0);
}
#[test]
@@ -1294,6 +1317,7 @@ mod tests {
assert_eq!(partial.username, "Ada", "{}", user.user_id);
assert_eq!(partial.global_name.as_deref(), Some("Ada Lovelace"));
assert_eq!(partial.banner_hash.as_deref(), Some("banner_hash"));
assert_eq!(partial.discriminator, 7);
assert_eq!(partial.flags.unwrap_or_default() & PROFILE_HIDDEN, 0);
}
}