Got 404 working again.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s

This commit is contained in:
Jeff Baskin 2026-02-03 11:37:58 -05:00
parent aa4a5b9b7c
commit 0dbf75d0c6
4 changed files with 89 additions and 73 deletions

View File

@ -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);
}
}

View File

@ -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;

View 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
View 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);
}