2023-11-22 18:48:44 +01:00
|
|
|
use std::borrow::BorrowMut;
|
|
|
|
|
|
|
|
use chorus::types::{LoginSchema, RegisterSchema};
|
2023-11-20 14:03:06 +01:00
|
|
|
// PRETTYFYME: Move common wasm setup to common.rs
|
|
|
|
#[cfg(target_arch = "wasm32")]
|
|
|
|
use wasm_bindgen_test::*;
|
|
|
|
#[cfg(target_arch = "wasm32")]
|
|
|
|
wasm_bindgen_test_configure!(run_in_browser);
|
2023-05-27 22:46:50 +02:00
|
|
|
|
2023-06-11 13:52:31 +02:00
|
|
|
mod common;
|
|
|
|
|
2023-11-22 14:39:32 +01:00
|
|
|
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
|
|
|
|
#[cfg_attr(not(target_arch = "wasm32"), tokio::test)]
|
2023-05-27 22:46:50 +02:00
|
|
|
async fn test_registration() {
|
2023-11-22 18:48:44 +01:00
|
|
|
let mut bundle = common::setup().await;
|
2023-06-25 11:33:50 +02:00
|
|
|
let reg = RegisterSchema {
|
|
|
|
username: "Hiiii".into(),
|
2023-06-19 10:27:32 +02:00
|
|
|
date_of_birth: Some("2000-01-01".to_string()),
|
2023-06-25 11:33:50 +02:00
|
|
|
consent: true,
|
|
|
|
..Default::default()
|
|
|
|
};
|
2023-11-22 18:48:44 +01:00
|
|
|
bundle.instance.register_account(reg).await.unwrap();
|
|
|
|
common::teardown(bundle).await;
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
|
|
|
|
#[cfg_attr(not(target_arch = "wasm32"), tokio::test)]
|
|
|
|
async fn test_login() {
|
|
|
|
let mut bundle = common::setup().await;
|
|
|
|
let reg = RegisterSchema {
|
|
|
|
username: "Hiiii".into(),
|
|
|
|
email: Some("testuser1@integrationtesting.xyz".into()),
|
|
|
|
password: Some("Correct-Horse-Battery-Staple1".into()),
|
|
|
|
date_of_birth: Some("2000-01-01".to_string()),
|
|
|
|
consent: true,
|
|
|
|
..Default::default()
|
|
|
|
};
|
|
|
|
bundle.instance.register_account(reg).await.unwrap();
|
|
|
|
let login = LoginSchema {
|
|
|
|
login: "testuser1@integrationtesting.xyz".into(),
|
|
|
|
password: "Correct-Horse-Battery-Staple1".into(),
|
|
|
|
..Default::default()
|
|
|
|
};
|
|
|
|
bundle.instance.login_account(login).await.unwrap();
|
|
|
|
common::teardown(bundle).await;
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
|
|
|
|
#[cfg_attr(not(target_arch = "wasm32"), tokio::test)]
|
|
|
|
async fn test_wrong_login() {
|
|
|
|
let mut bundle = common::setup().await;
|
|
|
|
let reg = RegisterSchema {
|
|
|
|
username: "Hiiii".into(),
|
|
|
|
email: Some("testuser2@integrationtesting.xyz".into()),
|
|
|
|
password: Some("Correct-Horse-Battery-Staple1".into()),
|
|
|
|
date_of_birth: Some("2000-01-01".to_string()),
|
|
|
|
consent: true,
|
|
|
|
..Default::default()
|
|
|
|
};
|
|
|
|
bundle.instance.register_account(reg).await.unwrap();
|
|
|
|
let login = LoginSchema {
|
|
|
|
login: "testuser2@integrationtesting.xyz".into(),
|
|
|
|
password: "Correct-Horse-Battery-Staple2".into(),
|
|
|
|
..Default::default()
|
|
|
|
};
|
|
|
|
let res = bundle.instance.login_account(login).await;
|
|
|
|
assert!(res.is_err());
|
2023-05-27 22:46:50 +02:00
|
|
|
common::teardown(bundle).await;
|
|
|
|
}
|
2023-11-22 18:38:23 +01:00
|
|
|
|
|
|
|
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
|
|
|
|
#[cfg_attr(not(target_arch = "wasm32"), tokio::test)]
|
|
|
|
async fn test_login_with_token() {
|
|
|
|
let mut bundle = common::setup().await;
|
|
|
|
|
|
|
|
let token = &bundle.user.token;
|
|
|
|
let other_user = bundle
|
|
|
|
.instance
|
|
|
|
.login_with_token(token.clone())
|
|
|
|
.await
|
|
|
|
.unwrap();
|
|
|
|
assert_eq!(
|
|
|
|
bundle.user.object.read().unwrap().id,
|
|
|
|
other_user.object.read().unwrap().id
|
|
|
|
);
|
|
|
|
assert_eq!(bundle.user.token, other_user.token);
|
|
|
|
|
|
|
|
common::teardown(bundle).await;
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
|
|
|
|
#[cfg_attr(not(target_arch = "wasm32"), tokio::test)]
|
|
|
|
async fn test_login_with_invalid_token() {
|
|
|
|
let mut bundle = common::setup().await;
|
|
|
|
|
|
|
|
let token = "invalid token lalalalala".to_string();
|
|
|
|
let other_user = bundle.instance.login_with_token(token.clone()).await;
|
|
|
|
|
|
|
|
assert!(other_user.is_err());
|
|
|
|
|
|
|
|
common::teardown(bundle).await;
|
|
|
|
}
|