first integration test
This commit is contained in:
17
src/main.rs
17
src/main.rs
@@ -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, &[]);
|
||||
|
||||
|
||||
@@ -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)]
|
||||
|
||||
Reference in New Issue
Block a user