41 lines
1.2 KiB
Rust
41 lines
1.2 KiB
Rust
|
use insta::{assert_debug_snapshot, with_settings};
|
||
|
use loco_rs::testing;
|
||
|
use nixin_farm_ssr::app::App;
|
||
|
use serial_test::serial;
|
||
|
|
||
|
use super::prepare_data;
|
||
|
|
||
|
// TODO: see how to dedup / extract this to app-local test utils
|
||
|
// not to framework, because that would require a runtime dep on insta
|
||
|
macro_rules! configure_insta {
|
||
|
($($expr:expr),*) => {
|
||
|
let mut settings = insta::Settings::clone_current();
|
||
|
settings.set_prepend_module_to_snapshot(false);
|
||
|
settings.set_snapshot_suffix("auth_request");
|
||
|
let _guard = settings.bind_to_scope();
|
||
|
};
|
||
|
}
|
||
|
|
||
|
#[tokio::test]
|
||
|
#[serial]
|
||
|
async fn can_get_current_user() {
|
||
|
configure_insta!();
|
||
|
|
||
|
testing::request::<App, _, _>(|request, ctx| async move {
|
||
|
let user = prepare_data::init_user_login(&request, &ctx).await;
|
||
|
|
||
|
let (auth_key, auth_value) = prepare_data::auth_header(&user.token);
|
||
|
let response = request
|
||
|
.get("/api/user/current")
|
||
|
.add_header(auth_key, auth_value)
|
||
|
.await;
|
||
|
|
||
|
with_settings!({
|
||
|
filters => testing::cleanup_user_model()
|
||
|
}, {
|
||
|
assert_debug_snapshot!((response.status_code(), response.text()));
|
||
|
});
|
||
|
})
|
||
|
.await;
|
||
|
}
|