push: Split test assertions

This commit is contained in:
Kévin Commaille 2022-06-04 19:24:39 +02:00 committed by Kévin Commaille
parent 191f3aca67
commit 085dc435fa
2 changed files with 57 additions and 61 deletions

View File

@ -537,7 +537,7 @@ mod tests {
assert_eq!(rule.unwrap().rule_id, ".m.rule.call");
let rule = set.override_.get(".m.rule.doesntexist");
assert!(rule.is_none());
assert_matches!(rule, None);
}
#[test]
@ -569,29 +569,29 @@ mod tests {
let rule_opt = iter.next();
assert!(rule_opt.is_some());
assert_matches!(
let rule_id = assert_matches!(
rule_opt.unwrap(),
AnyPushRule::Override(ConditionalPushRule { rule_id, .. })
if rule_id == ".m.rule.call"
AnyPushRule::Override(ConditionalPushRule { rule_id, .. }) => rule_id
);
assert_eq!(rule_id, ".m.rule.call");
let rule_opt = iter.next();
assert!(rule_opt.is_some());
assert_matches!(
let rule_id = assert_matches!(
rule_opt.unwrap(),
AnyPushRule::Override(ConditionalPushRule { rule_id, .. })
if rule_id == "!roomid:matrix.org"
AnyPushRule::Override(ConditionalPushRule { rule_id, .. }) => rule_id
);
assert_eq!(rule_id, "!roomid:matrix.org");
let rule_opt = iter.next();
assert!(rule_opt.is_some());
assert_matches!(
let rule_id = assert_matches!(
rule_opt.unwrap(),
AnyPushRule::Override(ConditionalPushRule { rule_id, .. })
if rule_id == ".m.rule.suppress_notices"
AnyPushRule::Override(ConditionalPushRule { rule_id, .. }) => rule_id
);
assert_eq!(rule_id, ".m.rule.suppress_notices");
assert!(iter.next().is_none());
assert_matches!(iter.next(), None);
}
#[test]
@ -815,7 +815,7 @@ mod tests {
#[test]
fn deserialize_patterned_push_rule() {
let rule = from_json_value(json!({
let rule = from_json_value::<PatternedPushRule>(json!({
"actions": [
"notify",
{
@ -833,21 +833,18 @@ mod tests {
"enabled": true
}))
.unwrap();
assert_matches!(
rule,
PatternedPushRule {
actions: _,
default: true,
enabled: true,
pattern,
rule_id,
}
if pattern == "user_id" && rule_id == ".m.rule.contains_user_name"
);
assert!(rule.default);
assert!(rule.enabled);
assert_eq!(rule.pattern, "user_id");
assert_eq!(rule.rule_id, ".m.rule.contains_user_name");
let mut iter = rule.actions.iter();
assert_matches!(iter.next(), Some(Action::Notify));
assert_matches!(iter.next(), Some(Action::SetTweak(Tweak::Sound(sound))) if sound == "default");
let sound = assert_matches!(
iter.next(),
Some(Action::SetTweak(Tweak::Sound(sound))) => sound
);
assert_eq!(sound, "default");
assert_matches!(iter.next(), Some(Action::SetTweak(Tweak::Highlight(true))));
assert_matches!(iter.next(), None);
}
@ -912,53 +909,53 @@ mod tests {
let rule_opt = iter.next();
assert!(rule_opt.is_some());
assert_matches!(
let rule_id = assert_matches!(
rule_opt.unwrap(),
AnyPushRule::Override(ConditionalPushRule { rule_id, .. })
if rule_id == "!roomid:server.name"
AnyPushRule::Override(ConditionalPushRule { rule_id, .. }) => rule_id
);
assert_eq!(rule_id, "!roomid:server.name");
let rule_opt = iter.next();
assert!(rule_opt.is_some());
assert_matches!(
let rule_id = assert_matches!(
rule_opt.unwrap(),
AnyPushRule::Override(ConditionalPushRule { rule_id, .. })
if rule_id == ".m.rule.call"
AnyPushRule::Override(ConditionalPushRule { rule_id, .. }) => rule_id
);
assert_eq!(rule_id, ".m.rule.call");
let rule_opt = iter.next();
assert!(rule_opt.is_some());
assert_matches!(
let rule_id = assert_matches!(
rule_opt.unwrap(),
AnyPushRule::Content(PatternedPushRule { rule_id, .. })
if rule_id == ".m.rule.contains_user_name"
AnyPushRule::Content(PatternedPushRule { rule_id, .. }) => rule_id
);
assert_eq!(rule_id, ".m.rule.contains_user_name");
let rule_opt = iter.next();
assert!(rule_opt.is_some());
assert_matches!(
let rule_id = assert_matches!(
rule_opt.unwrap(),
AnyPushRule::Content(PatternedPushRule { rule_id, .. })
if rule_id == "ruma"
AnyPushRule::Content(PatternedPushRule { rule_id, .. }) => rule_id
);
assert_eq!(rule_id, "ruma");
let rule_opt = iter.next();
assert!(rule_opt.is_some());
assert_matches!(
let rule_id = assert_matches!(
rule_opt.unwrap(),
AnyPushRule::Room(SimplePushRule { rule_id, .. })
if rule_id == "!roomid:server.name"
AnyPushRule::Room(SimplePushRule { rule_id, .. }) => rule_id
);
assert_eq!(rule_id, "!roomid:server.name");
let rule_opt = iter.next();
assert!(rule_opt.is_some());
assert_matches!(
let rule_id = assert_matches!(
rule_opt.unwrap(),
AnyPushRule::Underride(ConditionalPushRule { rule_id, .. })
if rule_id == ".m.rule.room_one_to_one"
AnyPushRule::Underride(ConditionalPushRule { rule_id, .. }) => rule_id
);
assert_eq!(rule_id, ".m.rule.room_one_to_one");
assert!(iter.next().is_none());
assert_matches!(iter.next(), None);
}
#[test]
@ -1172,11 +1169,11 @@ mod tests {
});
set.add(three_conditions);
assert_matches!(
let sound = assert_matches!(
set.get_actions(&message, context_one_to_one),
[Action::SetTweak(Tweak::Sound(sound))]
if sound == "content"
[Action::SetTweak(Tweak::Sound(sound))] => sound
);
assert_eq!(sound, "content");
let new_message = serde_json::from_str::<Raw<JsonValue>>(
r#"{
@ -1190,10 +1187,10 @@ mod tests {
)
.unwrap();
assert_matches!(
let sound = assert_matches!(
set.get_actions(&new_message, context_one_to_one),
[Action::SetTweak(Tweak::Sound(sound))]
if sound == "three"
[Action::SetTweak(Tweak::Sound(sound))] => sound
);
assert_eq!(sound, "three");
}
}

View File

@ -311,7 +311,6 @@ impl FlattenedJson {
mod tests {
use std::collections::BTreeMap;
use crate::{room_id, serde::Raw, user_id};
use assert_matches::assert_matches;
use js_int::{int, uint};
use maplit::btreemap;
@ -320,7 +319,7 @@ mod tests {
};
use super::{FlattenedJson, PushCondition, PushConditionRoomCtx, RoomMemberCountIs, StrExt};
use crate::power_levels::NotificationPowerLevels;
use crate::{power_levels::NotificationPowerLevels, room_id, serde::Raw, user_id};
#[test]
fn serialize_event_match_condition() {
@ -382,11 +381,12 @@ mod tests {
"kind": "event_match",
"pattern": "m.notice"
});
assert_matches!(
let (key, pattern) = assert_matches!(
from_json_value::<PushCondition>(json_data).unwrap(),
PushCondition::EventMatch { key, pattern }
if key == "content.msgtype" && pattern == "m.notice"
PushCondition::EventMatch { key, pattern } => (key, pattern)
);
assert_eq!(key, "content.msgtype");
assert_eq!(pattern, "m.notice");
}
#[test]
@ -403,11 +403,11 @@ mod tests {
"is": "2",
"kind": "room_member_count"
});
assert_matches!(
let is = assert_matches!(
from_json_value::<PushCondition>(json_data).unwrap(),
PushCondition::RoomMemberCount { is }
if is == RoomMemberCountIs::from(uint!(2))
PushCondition::RoomMemberCount { is } => is
);
assert_eq!(is, RoomMemberCountIs::from(uint!(2)));
}
#[test]
@ -416,12 +416,11 @@ mod tests {
"key": "room",
"kind": "sender_notification_permission"
});
assert_matches!(
let key = assert_matches!(
from_json_value::<PushCondition>(json_data).unwrap(),
PushCondition::SenderNotificationPermission {
key
} if key == "room"
PushCondition::SenderNotificationPermission { key } => key
);
assert_eq!(key, "room");
}
#[test]