Moved client requests into lib testing.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s

This commit is contained in:
2026-02-22 00:21:57 -05:00
parent f334bfa9f1
commit 7e067fde8c
6 changed files with 95 additions and 127 deletions

View File

@@ -9,17 +9,18 @@ pub use action::*;
use document::{Clock, CreateDoc, Session};
use message::{wrapper::Message, MessageAction};
use queue::{
data_director::{Include, Path, RegMsg, Register},
data_director::{RegMsg, Register},
router::Queue,
};
use std::{
sync::mpsc::{channel, Receiver},
sync::mpsc::{channel, Receiver, Sender},
time::Duration,
};
use uuid::Uuid;
pub use mtterror::{ErrorID, MTTError};
pub use name::{Name, NameType};
pub use queue::data_director::{Include, Path};
#[cfg(test)]
mod support_tests {
@@ -38,10 +39,14 @@ pub struct MoreThanText {
impl MoreThanText {
pub fn new() -> Self {
let queue = Queue::new();
let mut output = Self { queue: queue.clone()};
let mut output = Self {
queue: queue.clone(),
};
Clock::start(queue.clone());
CreateDoc::start(queue.clone());
output.create_document(Session::document_definition()).unwrap();
output
.create_document(Session::document_definition())
.unwrap();
output
}
@@ -120,8 +125,8 @@ impl MoreThanText {
Ok(data) => match data.get_action() {
MsgAction::Records(data) => Ok(data.clone()),
MsgAction::Error(err) => Err(err.clone()),
_ => unreachable!("should only receive records or errors")
}
_ => unreachable!("should only receive records or errors"),
},
Err(_) => Err(MTTError::new(NameType::None, ErrorID::TimeOut)),
};
self.queue.remove_sender(&sender_id);
@@ -155,8 +160,8 @@ impl MoreThanText {
Ok(data) => match data.get_action() {
MsgAction::DocumentCreated => Ok(()),
MsgAction::Error(err) => Err(err.clone()),
_ => unreachable!("should only receive records or errors")
}
_ => unreachable!("should only receive records or errors"),
},
Err(_) => Err(MTTError::new(NameType::None, ErrorID::TimeOut)),
};
self.queue.remove_sender(&sender_id);
@@ -198,6 +203,10 @@ impl TestMoreThanText {
self.mtt.records(request)
}
pub fn create_document(&mut self, docdef: DocDef) -> Result<(), MTTError> {
self.mtt.create_document(docdef)
}
pub fn send_time_pulse(&self) {
let msg = Clock::gen_message();
self.queue.send(msg);
@@ -206,4 +215,16 @@ impl TestMoreThanText {
pub fn random_name() -> Name {
Name::english(Uuid::new_v4().to_string().as_str())
}
pub fn register_channel(&self, paths: Vec<Path>) -> Receiver<Message> {
let mut queue = self.mtt.queue.clone();
let (tx, rx) = channel();
let sender_id = queue.add_sender(tx);
for path in paths.iter() {
let reg_msg = Register::new(sender_id.clone(), RegMsg::AddRoute(path.clone()));
queue.send(Message::new(reg_msg));
rx.recv().unwrap(); // Wait for completion.
}
rx
}
}