Viewing:
use actix_http::StatusCode;
use actix_web::{middleware, web, App};
use env_logger::Env;
use lilgit::{self, UserConfig};
use std::collections::HashMap;
use std::sync::Mutex;
#[actix_rt::test]
async fn test_index_redirects_when_single_user() {
let mut users = HashMap::new();
let mut repos = HashMap::new();
repos.insert(
String::from("lilgit"),
lilgit::RepoConfig {
description: String::from("lilgit self-hosted git service"),
clone_with: Some(String::from("")),
},
);
let user = UserConfig { repos };
users.insert(
std::env::var("LILGIT_TEST_USER").expect("must set LILGIT_TEST_USER to run tests"),
user,
);
let config = lilgit::Config {
users,
repos_dir: std::env::var("LILGIT_TEST_DIR").expect("must set LILGIT_TEST_DIR to run tests"),
folder_depth: 4,
};
let app_data = web::Data::new(lilgit::AppState {
config,
line_counts: Mutex::new(HashMap::new()),
});
env_logger::init_from_env(Env::default().default_filter_or("info"));
let srv = actix_test::start(move || {
App::new()
.wrap(middleware::NormalizePath::trim())
.wrap(middleware::Compress::default())
.wrap(middleware::Logger::default())
.app_data(app_data.clone())
.service(lilgit::get_index)
.service(lilgit::user::get_repos)
});
let req = srv.get("/");
let res = req.send().await.unwrap();
assert_eq!(res.status(), StatusCode::OK);
}