Added file not found responce.
This commit is contained in:
		
							
								
								
									
										27
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								src/main.rs
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
use axum::{extract::State, handler::Handler, response::IntoResponse};
 | 
			
		||||
use axum::{extract::State, response::IntoResponse, routing::get, Router};
 | 
			
		||||
use axum_extra::extract::cookie::{Cookie, CookieJar};
 | 
			
		||||
use clap::Parser;
 | 
			
		||||
use morethantext::MoreThanText;
 | 
			
		||||
@@ -26,13 +26,17 @@ async fn main() {
 | 
			
		||||
    let args = Args::parse();
 | 
			
		||||
    let addr = format!("{}:{}", args.address, args.port);
 | 
			
		||||
    let state = MoreThanText::new();
 | 
			
		||||
    let app = mtt_conn.with_state(state);
 | 
			
		||||
    let app = create_app(state).await;
 | 
			
		||||
    let listener = tokio::net::TcpListener::bind(&addr).await.unwrap();
 | 
			
		||||
    axum::serve(listener, app.into_make_service())
 | 
			
		||||
        .await
 | 
			
		||||
        .unwrap();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async fn create_app(state: MoreThanText) -> Router {
 | 
			
		||||
    Router::new().route("/", get(mtt_conn)).with_state(state)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async fn mtt_conn(jar: CookieJar, state: State<MoreThanText>) -> impl IntoResponse {
 | 
			
		||||
    let sid = match jar.get(SESSION_KEY) {
 | 
			
		||||
        Some(cookie) => Some(cookie.value().to_string()),
 | 
			
		||||
@@ -60,7 +64,7 @@ mod servers {
 | 
			
		||||
 | 
			
		||||
    #[tokio::test]
 | 
			
		||||
    async fn get_home_page() {
 | 
			
		||||
        let app = mtt_conn.with_state(MoreThanText::new());
 | 
			
		||||
        let app = create_app(MoreThanText::new()).await;
 | 
			
		||||
        let response = app
 | 
			
		||||
            .oneshot(Request::builder().uri("/").body(Body::empty()).unwrap())
 | 
			
		||||
            .await
 | 
			
		||||
@@ -72,7 +76,7 @@ mod servers {
 | 
			
		||||
 | 
			
		||||
    #[tokio::test]
 | 
			
		||||
    async fn session_ids_are_unique() {
 | 
			
		||||
        let app = mtt_conn.with_state(MoreThanText::new());
 | 
			
		||||
        let app = create_app(MoreThanText::new()).await;
 | 
			
		||||
        let mut holder: Vec<String> = Vec::new();
 | 
			
		||||
        for _ in 0..5 {
 | 
			
		||||
            let response = app
 | 
			
		||||
@@ -89,4 +93,19 @@ mod servers {
 | 
			
		||||
            holder.push(sessid);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[tokio::test]
 | 
			
		||||
    async fn receive_file_not_found() {
 | 
			
		||||
        let app = create_app(MoreThanText::new()).await;
 | 
			
		||||
        let response = app
 | 
			
		||||
            .oneshot(
 | 
			
		||||
                Request::builder()
 | 
			
		||||
                    .uri("/isomething")
 | 
			
		||||
                    .body(Body::empty())
 | 
			
		||||
                    .unwrap(),
 | 
			
		||||
            )
 | 
			
		||||
            .await
 | 
			
		||||
            .unwrap();
 | 
			
		||||
        assert_eq!(response.status(), StatusCode::NOT_FOUND);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user