64 lines
2.1 KiB
Rust
64 lines
2.1 KiB
Rust
use assert_matches2::assert_matches;
|
|
use ruma_appservice_api::Registration;
|
|
|
|
#[test]
|
|
fn registration_deserialization() {
|
|
let registration_config = r##"
|
|
id: "IRC Bridge"
|
|
url: "http://127.0.0.1:1234"
|
|
as_token: "30c05ae90a248a4188e620216fa72e349803310ec83e2a77b34fe90be6081f46"
|
|
hs_token: "312df522183efd404ec1cd22d2ffa4bbc76a8c1ccf541dd692eef281356bb74e"
|
|
sender_localpart: "_irc_bot"
|
|
namespaces:
|
|
users:
|
|
- exclusive: true
|
|
regex: "@_irc_bridge_.*"
|
|
aliases:
|
|
- exclusive: false
|
|
regex: "#_irc_bridge_.*"
|
|
rooms: []
|
|
"##;
|
|
let observed: Registration = serde_yaml::from_str(registration_config).unwrap();
|
|
|
|
assert_eq!(observed.id, "IRC Bridge");
|
|
assert_eq!(observed.url.unwrap(), "http://127.0.0.1:1234");
|
|
assert_eq!(
|
|
observed.as_token,
|
|
"30c05ae90a248a4188e620216fa72e349803310ec83e2a77b34fe90be6081f46"
|
|
);
|
|
assert_eq!(
|
|
observed.hs_token,
|
|
"312df522183efd404ec1cd22d2ffa4bbc76a8c1ccf541dd692eef281356bb74e"
|
|
);
|
|
assert_eq!(observed.sender_localpart, "_irc_bot");
|
|
assert_eq!(observed.rate_limited, None);
|
|
assert_eq!(observed.protocols, None);
|
|
|
|
assert_eq!(observed.namespaces.users.len(), 1);
|
|
assert!(observed.namespaces.users[0].exclusive);
|
|
assert_eq!(observed.namespaces.users[0].regex, "@_irc_bridge_.*");
|
|
|
|
assert_eq!(observed.namespaces.aliases.len(), 1);
|
|
assert!(!observed.namespaces.aliases[0].exclusive);
|
|
assert_eq!(observed.namespaces.aliases[0].regex, "#_irc_bridge_.*");
|
|
|
|
assert_eq!(observed.namespaces.rooms.len(), 0);
|
|
}
|
|
|
|
#[test]
|
|
fn config_with_optional_url() {
|
|
let registration_config = r#"
|
|
id: "IRC Bridge"
|
|
url: null
|
|
as_token: "30c05ae90a248a4188e620216fa72e349803310ec83e2a77b34fe90be6081f46"
|
|
hs_token: "312df522183efd404ec1cd22d2ffa4bbc76a8c1ccf541dd692eef281356bb74e"
|
|
sender_localpart: "_irc_bot"
|
|
namespaces:
|
|
users: []
|
|
aliases: []
|
|
rooms: []
|
|
"#;
|
|
assert_matches!(serde_yaml::from_str(registration_config).unwrap(), Registration { url, .. });
|
|
assert_eq!(url, None);
|
|
}
|