Audit records name accounts in full, and holds by name
An account's or mailing list's name is only its local part, so the log said "Account ken.gosling" where two domains could each have one; it now says [email protected]. A change to a legal hold was recorded under its id; the hold's current state is now read first, so the record carries its case name and each change reads before/after.
This commit is contained in:
@@ -574,6 +574,33 @@ pub async fn test(test: &mut TestServer) {
|
||||
for reason in ["Counsel's letter", "Counsel widened the matter", "Matter settled"] {
|
||||
assert!(reasons.contains(&reason), "AU-12: {reason:?} not recorded: {reasons:?}");
|
||||
}
|
||||
// A release is recorded under the hold's name, from before to after
|
||||
let list = records["list"].as_array().cloned().unwrap_or_default();
|
||||
let release = list
|
||||
.iter()
|
||||
.find(|r| r["reason"] == "First settled")
|
||||
.unwrap_or_else(|| panic!("the first release isn't recorded: {list:?}"));
|
||||
assert_eq!(release["target"]["name"], "Matter 7001", "{release}");
|
||||
assert!(
|
||||
release["changes"]
|
||||
.as_array()
|
||||
.is_some_and(|c| c.iter().any(|c| c["field"] == "released" && c["before"] == false && c["after"] == true)),
|
||||
"the release doesn't read before/after: {release}"
|
||||
);
|
||||
|
||||
// Accounts are named by their full address, not the bare local part
|
||||
let (_, query) = admin
|
||||
.hold_call("inbuxa:AuditEvent/query", json!({"filter": {"targetKind": "x:Account"}}))
|
||||
.await;
|
||||
let (_, accounts) = admin
|
||||
.hold_call("inbuxa:AuditEvent/get", json!({"ids": query["ids"].clone()}))
|
||||
.await;
|
||||
assert!(
|
||||
accounts["list"]
|
||||
.as_array()
|
||||
.is_some_and(|l| l.iter().any(|r| r["target"]["name"] == "[email protected]")),
|
||||
"an account isn't named by its address: {accounts}"
|
||||
);
|
||||
}
|
||||
|
||||
async fn import(
|
||||
|
||||
Reference in New Issue
Block a user