79 lines
No EOL
2.4 KiB
Rust
79 lines
No EOL
2.4 KiB
Rust
//! Tests pour le store simple
|
|
|
|
use crate::error::{ChatError, Result};
|
|
use crate::simple_message_store::SimpleMessageStore;
|
|
|
|
pub async fn test_simple_store(_database_url: &str) -> Result<()> {
|
|
let store = SimpleMessageStore::new();
|
|
|
|
// Test d'envoi de message
|
|
let msg_id = store.send_simple_message(
|
|
"Hello World!",
|
|
"test_user",
|
|
Some("general"),
|
|
false
|
|
).await?;
|
|
|
|
println!("✅ Message envoyé avec ID: {}", msg_id);
|
|
|
|
// Test de récupération
|
|
let messages = store.get_room_messages("general", 10).await?;
|
|
println!("✅ Messages récupérés: {}", messages.len());
|
|
|
|
// Test de message direct
|
|
let dm_id = store.send_simple_message(
|
|
"Private message",
|
|
"user1",
|
|
None,
|
|
true
|
|
).await?;
|
|
|
|
println!("✅ Message direct envoyé avec ID: {}", dm_id);
|
|
|
|
// Test de récupération DM
|
|
let dms = store.get_direct_messages("user1", "user2", 10).await?;
|
|
println!("✅ Messages directs récupérés: {}", dms.len());
|
|
|
|
// Test d'édition
|
|
store.edit_message(msg_id, "Hello World Updated!").await?;
|
|
println!("✅ Message édité");
|
|
|
|
// Test de suppression
|
|
store.delete_message(msg_id).await?;
|
|
println!("✅ Message supprimé");
|
|
|
|
// Tests d'autres fonctions
|
|
store.pin_message(1).await?;
|
|
let exists = store.message_exists(999).await?;
|
|
println!("✅ Message 999 existe: {}", exists);
|
|
|
|
store.add_reaction(1, 1, "👍").await?;
|
|
store.remove_reaction(1, 1, "👍").await?;
|
|
store.mark_as_read(1, "conversation1").await?;
|
|
|
|
let unread = store.count_unread(1).await?;
|
|
let unread_dms = store.count_unread_dms(1).await?;
|
|
let unread_mentions = store.count_unread_mentions(1).await?;
|
|
let reactions = store.count_reactions(1).await?;
|
|
|
|
println!("✅ Compteurs - Non lus: {}, DMs: {}, Mentions: {}, Réactions: {}",
|
|
unread, unread_dms, unread_mentions, reactions);
|
|
|
|
println!("🎉 Tous les tests passés!");
|
|
Ok(())
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[tokio::test]
|
|
async fn test_store_integration() {
|
|
let database_url = std::env::var("DATABASE_URL")
|
|
.unwrap_or_else(|_| "postgresql://veza_user:veza_password@10.5.191.134:5432/veza_db".to_string());
|
|
|
|
if let Err(e) = test_simple_store(&database_url).await {
|
|
panic!("Test failed: {}", e);
|
|
}
|
|
}
|
|
}
|