mirror of
https://github.com/n08i40k/schedule-parser-rusted.git
synced 2025-12-06 09:47:50 +03:00
Возвращёна реализация сериализации в json для IResponse Добавлены типы для экстракции данных из запросов средствами actix-web Добавлен экстрактор для получения пользователя по токену доступа передаваемому в запросе Добавлен макрос для автоматической реализации ResponseError для ошибок экстракторов Добавлен эндпоинт users/me Из главного проекта исключена зависимость actix-http посредством переноса части тестового функционала в отдельный crate
32 lines
877 B
Rust
32 lines
877 B
Rust
#[cfg(test)]
|
|
pub(crate) mod tests {
|
|
use crate::app_state::{app_state, AppState, Schedule};
|
|
use crate::parser::tests::test_result;
|
|
use actix_web::{web};
|
|
use std::sync::LazyLock;
|
|
|
|
pub fn test_env() {
|
|
dotenvy::from_path(".env.test").expect("Failed to load test environment file");
|
|
}
|
|
|
|
pub fn test_app_state() -> web::Data<AppState> {
|
|
let state = app_state();
|
|
let mut schedule_lock = state.schedule.lock().unwrap();
|
|
|
|
*schedule_lock = Some(Schedule {
|
|
etag: "".to_string(),
|
|
updated_at: Default::default(),
|
|
parsed_at: Default::default(),
|
|
data: test_result(),
|
|
});
|
|
|
|
state.clone()
|
|
}
|
|
|
|
pub fn static_app_state() -> web::Data<AppState> {
|
|
static STATE: LazyLock<web::Data<AppState>> = LazyLock::new(|| test_app_state());
|
|
|
|
STATE.clone()
|
|
}
|
|
}
|