Bump js_int, add regression test

The version bump fixes an issue where `UInt`s or `Duration`s in the
query string would fail
to deserialize
This commit is contained in:
Jonas Platte 2020-04-03 18:22:52 +02:00
parent 9db26e1dda
commit 0c44e73a78
No known key found for this signature in database
GPG Key ID: 7D261D771D915378
2 changed files with 29 additions and 1 deletions

View File

@ -14,7 +14,7 @@ edition = "2018"
[dependencies] [dependencies]
http = "0.2.1" http = "0.2.1"
js_int = { version = "0.1.3", features = ["serde"] } js_int = { version = "0.1.4", features = ["serde"] }
ruma-api = "0.15.0" ruma-api = "0.15.0"
ruma-events = "0.18.0" ruma-events = "0.18.0"
ruma-identifiers = "0.14.1" ruma-identifiers = "0.14.1"

View File

@ -359,4 +359,32 @@ mod tests {
assert!(query.contains("set_presence=offline")); assert!(query.contains("set_presence=offline"));
assert!(query.contains("timeout=30000")) assert!(query.contains("timeout=30000"))
} }
#[test]
fn deserialize_sync_request_with_query_params() {
let uri = http::Uri::builder()
.scheme("https")
.authority("matrix.org")
.path_and_query("/_matrix/client/r0/sync?filter=myfilter&since=myts&full_state=false&set_presence=offline&timeout=5000")
.build()
.unwrap();
let req: Request = http::Request::builder()
.uri(uri)
.body(Vec::<u8>::new())
.unwrap()
.try_into()
.unwrap();
match req.filter {
Some(Filter::FilterId(id)) if id == "myfilter" => {}
_ => {
panic!("Not the expected filter ID.");
}
}
assert_eq!(req.since, Some("myts".into()));
assert_eq!(req.full_state, false);
assert_eq!(req.set_presence, SetPresence::Offline);
assert_eq!(req.timeout, Some(Duration::from_millis(5000)));
}
} }