Got 404 working again.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
This commit is contained in:
parent
aa4a5b9b7c
commit
0dbf75d0c6
48
src/lib.rs
48
src/lib.rs
@ -14,6 +14,7 @@ use message::{
|
||||
action::{Action, MsgAction},
|
||||
wrapper::{Addition, CalcValue, Calculation, Message, Operand, Query},
|
||||
};
|
||||
pub use mtterror::MTTError;
|
||||
use name::{Name, NameType};
|
||||
use queue::{
|
||||
data_director::{Include, Path, RegMsg, Register},
|
||||
@ -104,48 +105,11 @@ impl MoreThanText {
|
||||
output
|
||||
}
|
||||
|
||||
pub fn get_document(&self) -> String {
|
||||
"something".to_string()
|
||||
pub fn get_document(&self, name: &str, id: &str) -> Result<String, MTTError> {
|
||||
if name == "page" {
|
||||
Ok("something".to_string())
|
||||
} else {
|
||||
Err(MTTError::DocumentNotFound(name.to_string()))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod mtts {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn are_session_ids_unique() {
|
||||
let mut mtt = MoreThanText::new();
|
||||
let count = 10;
|
||||
let mut result: Vec<Uuid> = Vec::new();
|
||||
for _ in 0..count {
|
||||
let id = mtt.validate_session(None);
|
||||
assert!(!result.contains(&id), "found {} in {:?}", id, result);
|
||||
result.push(id);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bad_session_id_returns_new_id() {
|
||||
let mut mtt = MoreThanText::new();
|
||||
let id1 = mtt.validate_session(Some("stuff".to_string()));
|
||||
let id2 = mtt.validate_session(Some("stuff".to_string()));
|
||||
assert_ne!(id1, id2);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn creates_new_session_if_bad_or_expired() {
|
||||
let mut mtt = MoreThanText::new();
|
||||
let id1 = mtt.validate_session(Some(Uuid::nil().to_string()));
|
||||
let id2 = mtt.validate_session(Some(Uuid::nil().to_string()));
|
||||
assert_ne!(id1, id2);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn returns_same_session_id_when_valid() {
|
||||
let mut mtt = MoreThanText::new();
|
||||
let id = mtt.validate_session(None);
|
||||
let result = mtt.validate_session(Some(id.to_string()));
|
||||
assert_eq!(result, id);
|
||||
}
|
||||
}
|
||||
|
||||
51
src/main.rs
51
src/main.rs
@ -8,7 +8,7 @@ use axum::{
|
||||
use clap::Parser;
|
||||
//use morethantext::{ActionType, ErrorType, MoreThanText};
|
||||
//use morethantext::{MoreThanText, MsgAction, Query};
|
||||
use morethantext::MoreThanText;
|
||||
use morethantext::{MTTError, MoreThanText};
|
||||
use std::{collections::HashMap, convert::Infallible};
|
||||
use tokio::{spawn, sync::mpsc::channel};
|
||||
use tower_cookies::{Cookie, CookieManagerLayer, Cookies};
|
||||
@ -91,38 +91,30 @@ async fn mtt_conn(
|
||||
_body: String,
|
||||
) -> impl IntoResponse {
|
||||
let (tx, mut rx) = channel(1);
|
||||
/*
|
||||
let _action = match method {
|
||||
//Method::GET => MsgAction::Query(Query::new()),
|
||||
//Method::GET => ActionType::Get,
|
||||
//Method::POST => ActionType::Add,
|
||||
//Method::PATCH => ActionType::Update,
|
||||
_ => unreachable!("reouter should prevent this"),
|
||||
};
|
||||
*/
|
||||
let _doc = match path.get("document") {
|
||||
Some(result) => result.clone(),
|
||||
None => "root".to_string(),
|
||||
};
|
||||
spawn(async move {
|
||||
//tx.send(state.get_document(sess_id.0, action, doc, body))
|
||||
tx.send(state.get_document()).await.unwrap();
|
||||
match method {
|
||||
Method::GET => match path.get("document") {
|
||||
Some(doc) => tx.send(state.get_document(doc, "home")).await.unwrap(),
|
||||
None => tx.send(state.get_document("page", "home")).await.unwrap(),
|
||||
},
|
||||
_ => unreachable!("reouter should prevent this"),
|
||||
}
|
||||
});
|
||||
let reply = rx.recv().await.unwrap();
|
||||
/*
|
||||
let status = match reply.get_error() {
|
||||
Some(err) => match err {
|
||||
ErrorType::DocumentAlreadyExists => StatusCode::CONFLICT,
|
||||
ErrorType::DocumentInvalidRequest => StatusCode::BAD_REQUEST,
|
||||
ErrorType::DocumentNotFound => StatusCode::NOT_FOUND,
|
||||
// _ => StatusCode::INTERNAL_SERVER_ERROR,
|
||||
},
|
||||
None => StatusCode::OK,
|
||||
let mut result = "".to_string();
|
||||
let mut status = StatusCode::OK;
|
||||
match reply {
|
||||
Ok(data) => {
|
||||
result = data.clone();
|
||||
}
|
||||
Err(err) => {
|
||||
status = match err {
|
||||
MTTError::DocumentNotFound(_) => StatusCode::NOT_FOUND,
|
||||
_ => StatusCode::INTERNAL_SERVER_ERROR,
|
||||
};
|
||||
(status, reply.get_document())
|
||||
*/
|
||||
let status = StatusCode::OK;
|
||||
(status, reply)
|
||||
}
|
||||
}
|
||||
(status, result)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
@ -195,7 +187,6 @@ mod servers {
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
#[ignore]
|
||||
async fn receive_file_not_found() {
|
||||
let uri = "/something";
|
||||
let app = create_app(MoreThanText::new()).await;
|
||||
|
||||
23
tests/lib_document_test.rs
Normal file
23
tests/lib_document_test.rs
Normal file
@ -0,0 +1,23 @@
|
||||
use morethantext::{MTTError, MoreThanText};
|
||||
|
||||
#[test]
|
||||
fn get_home_page() {
|
||||
let mtt = MoreThanText::new();
|
||||
match mtt.get_document("page", "home") {
|
||||
Ok(_) => {}
|
||||
Err(err) => assert!(false, "got error {:?}", err),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn errors_on_missing_page() {
|
||||
let mtt = MoreThanText::new();
|
||||
let doc_name = "missing";
|
||||
match mtt.get_document(doc_name, "home") {
|
||||
Ok(data) => assert!(false, "got '{}', should have been not found error", data),
|
||||
Err(err) => match err {
|
||||
MTTError::DocumentNotFound(result) => assert_eq!(result, doc_name),
|
||||
_ => unreachable!("got {:?}, should have been not found", err),
|
||||
},
|
||||
}
|
||||
}
|
||||
38
tests/lib_session_test.rs
Normal file
38
tests/lib_session_test.rs
Normal file
@ -0,0 +1,38 @@
|
||||
use morethantext::MoreThanText;
|
||||
use uuid::Uuid;
|
||||
|
||||
#[test]
|
||||
fn are_session_ids_unique() {
|
||||
let mut mtt = MoreThanText::new();
|
||||
let count = 10;
|
||||
let mut result: Vec<Uuid> = Vec::new();
|
||||
for _ in 0..count {
|
||||
let id = mtt.validate_session(None);
|
||||
assert!(!result.contains(&id), "found {} in {:?}", id, result);
|
||||
result.push(id);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bad_session_id_returns_new_id() {
|
||||
let mut mtt = MoreThanText::new();
|
||||
let id1 = mtt.validate_session(Some("stuff".to_string()));
|
||||
let id2 = mtt.validate_session(Some("stuff".to_string()));
|
||||
assert_ne!(id1, id2);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn creates_new_session_if_bad_or_expired() {
|
||||
let mut mtt = MoreThanText::new();
|
||||
let id1 = mtt.validate_session(Some(Uuid::nil().to_string()));
|
||||
let id2 = mtt.validate_session(Some(Uuid::nil().to_string()));
|
||||
assert_ne!(id1, id2);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn returns_same_session_id_when_valid() {
|
||||
let mut mtt = MoreThanText::new();
|
||||
let id = mtt.validate_session(None);
|
||||
let result = mtt.validate_session(Some(id.to_string()));
|
||||
assert_eq!(result, id);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user