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

View File

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