first integration test

This commit is contained in:
Dylan Knutson
2025-09-05 22:33:03 +00:00
parent a40ac5f345
commit 1c7131d801
2 changed files with 16 additions and 8 deletions

View File

@@ -189,17 +189,26 @@ async fn unknown_message_handler(msg: Message) -> BotResult {
#[cfg(test)]
mod tests {
use mockall::predicate::{always, function};
use super::*;
use crate::message_sender::MockMessageSender;
use crate::test_utils::create_deps;
use crate::test_utils::{create_deps, create_tele_update};
#[tokio::test]
async fn test_main_handler() {
let mut bot = MockMessageSender::new();
bot.expect_send_html_message()
let mut message_sender = MockMessageSender::new();
message_sender
.expect_send_html_message()
.times(1)
.with(
function(|text: &String| text.contains("Available Commands:")),
always(),
)
.returning(|_, _| Ok(()));
let deps = create_deps(bot).await;
let mut deps = create_deps(message_sender).await;
deps.insert(create_tele_update("/help"));
let handler = main_handler();
dptree::type_check(handler.sig(), &deps, &[]);

View File

@@ -133,7 +133,7 @@ pub fn create_tele_private_chat(user: &User) -> Chat {
}
}
pub fn create_tele_update() -> Update {
pub fn create_tele_update(message_text: &str) -> Update {
let user = create_tele_user("sender");
let chat = create_tele_private_chat(&user);
Update {
@@ -150,7 +150,7 @@ pub fn create_tele_update() -> Update {
sender_business_bot: None,
kind: MessageKind::Common(MessageCommon {
media_kind: MediaKind::Text(MediaText {
text: "test".to_string(),
text: message_text.to_string(),
entities: vec![],
link_preview_options: None,
}),
@@ -175,7 +175,6 @@ pub fn create_tele_update() -> Update {
}
pub async fn create_deps(mock_bot: MockMessageSender) -> DependencyMap {
let update = create_tele_update();
let pool = create_test_pool().await;
let dialog_storage = SqliteStorage::new(pool.clone(), Json).await.unwrap();
let daos = DAOs::new(pool);
@@ -189,7 +188,7 @@ pub async fn create_deps(mock_bot: MockMessageSender) -> DependencyMap {
can_connect_to_business: true,
has_main_web_app: true,
};
dptree::deps![update, dialog_storage, app, me, daos]
dptree::deps![dialog_storage, app, me, daos]
}
#[cfg(test)]