extract the create_app function for the tests

This commit is contained in:
Tamo 2022-10-18 11:57:00 +02:00 committed by Clément Renault
parent aff67f78c1
commit 65e69c06bc
No known key found for this signature in database
GPG key ID: 92ADA4E935E71FA4
5 changed files with 69 additions and 51 deletions

View file

@ -2,15 +2,14 @@ use std::env;
use std::path::PathBuf;
use std::sync::Arc;
use actix_cors::Cors;
use actix_web::http::KeepAlive;
use actix_web::web::Data;
use actix_web::{middleware, HttpServer};
use actix_web::HttpServer;
use clap::Parser;
use index_scheduler::IndexScheduler;
use meilisearch_auth::AuthController;
use meilisearch_http::analytics::Analytics;
use meilisearch_http::{analytics, configure_data, dashboard, routes};
use meilisearch_http::{analytics, create_app};
use meilisearch_http::{setup_meilisearch, Opt};
#[global_allocator]
@ -77,44 +76,13 @@ async fn run_http(
let index_scheduler = Data::new(index_scheduler);
let http_server = HttpServer::new(move || {
let app = actix_web::App::new()
.configure(|s| {
configure_data(
s,
index_scheduler.clone(),
auth_controller.clone(),
&opt,
analytics.clone(),
)
})
.configure(routes::configure)
.configure(|s| dashboard(s, enable_dashboard));
#[cfg(feature = "metrics")]
let app = app.configure(|s| configure_metrics_route(s, opt.enable_metrics_route));
let app = app
.wrap(
Cors::default()
.send_wildcard()
.allow_any_header()
.allow_any_origin()
.allow_any_method()
.max_age(86_400), // 24h
)
.wrap(middleware::Logger::default())
.wrap(middleware::Compress::default())
.wrap(middleware::NormalizePath::new(
middleware::TrailingSlash::Trim,
));
#[cfg(feature = "metrics")]
let app = app.wrap(Condition::new(
opt.enable_metrics_route,
route_metrics::RouteMetrics,
));
app
create_app(
index_scheduler.clone(),
auth_controller.clone(),
opt.clone(),
analytics.clone(),
enable_dashboard,
)
})
// Disable signals allows the server to terminate immediately when a user enter CTRL-C
.disable_signals()