remove tests in favor of sytests
parent
b192fddf2f
commit
1c85b0fd05
124
src/test.rs
124
src/test.rs
|
@ -1,124 +0,0 @@
|
||||||
use super::*;
|
|
||||||
use rocket::local::Client;
|
|
||||||
use serde_json::{json, Value};
|
|
||||||
|
|
||||||
fn setup_client() -> Client {
|
|
||||||
Database::try_remove("localhost");
|
|
||||||
let rocket = setup_rocket();
|
|
||||||
Client::new(rocket).expect("valid rocket instance")
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test]
|
|
||||||
async fn register_login() {
|
|
||||||
let client = setup_client();
|
|
||||||
let mut response = client
|
|
||||||
.post("/_matrix/client/r0/register?kind=user")
|
|
||||||
.body(registration_init())
|
|
||||||
.dispatch()
|
|
||||||
.await;
|
|
||||||
let body = serde_json::from_str::<Value>(&response.body_string().await.unwrap()).unwrap();
|
|
||||||
|
|
||||||
assert_eq!(response.status().code, 401);
|
|
||||||
assert!(dbg!(&body["flows"]).as_array().unwrap().len() > 0);
|
|
||||||
assert!(body["session"].as_str().unwrap().len() > 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test]
|
|
||||||
async fn login_after_register_correct_password() {
|
|
||||||
let client = setup_client();
|
|
||||||
let mut response = client
|
|
||||||
.post("/_matrix/client/r0/register?kind=user")
|
|
||||||
.body(registration_init())
|
|
||||||
.dispatch()
|
|
||||||
.await;
|
|
||||||
let body = serde_json::from_str::<Value>(&response.body_string().await.unwrap()).unwrap();
|
|
||||||
let session = body["session"].clone();
|
|
||||||
|
|
||||||
let response = client
|
|
||||||
.post("/_matrix/client/r0/register?kind=user")
|
|
||||||
.body(registration(session.as_str().unwrap()))
|
|
||||||
.dispatch()
|
|
||||||
.await;
|
|
||||||
assert_eq!(response.status().code, 200);
|
|
||||||
|
|
||||||
let login_response = client
|
|
||||||
.post("/_matrix/client/r0/login")
|
|
||||||
.body(login_with_password("ilovebananas"))
|
|
||||||
.dispatch()
|
|
||||||
.await;
|
|
||||||
assert_eq!(login_response.status().code, 200);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test]
|
|
||||||
async fn login_after_register_incorrect_password() {
|
|
||||||
let client = setup_client();
|
|
||||||
let mut response = client
|
|
||||||
.post("/_matrix/client/r0/register?kind=user")
|
|
||||||
.body(registration_init())
|
|
||||||
.dispatch()
|
|
||||||
.await;
|
|
||||||
let body = serde_json::from_str::<Value>(&response.body_string().await.unwrap()).unwrap();
|
|
||||||
let session = body["session"].clone();
|
|
||||||
|
|
||||||
let response = client
|
|
||||||
.post("/_matrix/client/r0/register?kind=user")
|
|
||||||
.body(registration(session.as_str().unwrap()))
|
|
||||||
.dispatch()
|
|
||||||
.await;
|
|
||||||
assert_eq!(response.status().code, 200);
|
|
||||||
|
|
||||||
let mut login_response = client
|
|
||||||
.post("/_matrix/client/r0/login")
|
|
||||||
.body(login_with_password("idontlovebananas"))
|
|
||||||
.dispatch()
|
|
||||||
.await;
|
|
||||||
let body = serde_json::from_str::<Value>(&login_response.body_string().await.unwrap()).unwrap();
|
|
||||||
assert_eq!(
|
|
||||||
body.as_object()
|
|
||||||
.unwrap()
|
|
||||||
.get("errcode")
|
|
||||||
.unwrap()
|
|
||||||
.as_str()
|
|
||||||
.unwrap(),
|
|
||||||
"M_FORBIDDEN"
|
|
||||||
);
|
|
||||||
assert_eq!(login_response.status().code, 403);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn registration_init() -> &'static str {
|
|
||||||
r#"{
|
|
||||||
"username": "cheeky_monkey",
|
|
||||||
"password": "ilovebananas",
|
|
||||||
"device_id": "GHTYAJCE",
|
|
||||||
"initial_device_display_name": "Jungle Phone",
|
|
||||||
"inhibit_login": false
|
|
||||||
}"#
|
|
||||||
}
|
|
||||||
|
|
||||||
fn registration(session: &str) -> String {
|
|
||||||
json!({
|
|
||||||
"auth": {
|
|
||||||
"session": session,
|
|
||||||
"type": "m.login.dummy"
|
|
||||||
},
|
|
||||||
"username": "cheeky_monkey",
|
|
||||||
"password": "ilovebananas",
|
|
||||||
"device_id": "GHTYAJCE",
|
|
||||||
"initial_device_display_name": "Jungle Phone",
|
|
||||||
"inhibit_login": false
|
|
||||||
})
|
|
||||||
.to_string()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn login_with_password(password: &str) -> String {
|
|
||||||
json!({
|
|
||||||
"type": "m.login.password",
|
|
||||||
"identifier": {
|
|
||||||
"type": "m.id.user",
|
|
||||||
"user": "cheeky_monkey"
|
|
||||||
},
|
|
||||||
"password": password,
|
|
||||||
"initial_device_display_name": "Jungle Phone"
|
|
||||||
})
|
|
||||||
.to_string()
|
|
||||||
}
|
|
Loading…
Reference in New Issue