75 lines
2.4 KiB
Rust
75 lines
2.4 KiB
Rust
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
use crate::repository::{MessageRepository, RoomRepository};
|
|
use sqlx::PgPool;
|
|
use uuid::Uuid;
|
|
|
|
async fn setup_test_db() -> PgPool {
|
|
// Pour les tests, utiliser une base de données de test
|
|
// Cette fonction doit être implémentée selon votre configuration de test
|
|
let database_url =
|
|
std::env::var("DATABASE_URL").expect("DATABASE_URL must be set for tests");
|
|
|
|
sqlx::PgPool::connect(&database_url)
|
|
.await
|
|
.expect("Failed to connect to test database")
|
|
}
|
|
|
|
#[tokio::test]
|
|
#[ignore] // Ignorer par défaut car nécessite une DB de test
|
|
async fn test_create_message() {
|
|
let pool = setup_test_db().await;
|
|
let repo = MessageRepository::new(pool.clone());
|
|
|
|
// Créer d'abord une room de test
|
|
let room_repo = RoomRepository::new(pool.clone());
|
|
let creator_id = Uuid::new_v4();
|
|
|
|
// Créer la room
|
|
let room = room_repo
|
|
.create(
|
|
Some("Test Room"),
|
|
Some("Test Description"),
|
|
"public",
|
|
false,
|
|
creator_id,
|
|
)
|
|
.await
|
|
.expect("Failed to create room");
|
|
|
|
let sender_id = creator_id;
|
|
let message = repo
|
|
.create(room.id, sender_id, "Hello world")
|
|
.await
|
|
.unwrap();
|
|
|
|
assert_eq!(message.content, "Hello world");
|
|
assert!(matches!(
|
|
message.message_type,
|
|
crate::models::MessageType::Text
|
|
));
|
|
}
|
|
|
|
#[tokio::test]
|
|
#[ignore] // Ignorer par défaut car nécessite une DB de test
|
|
async fn test_get_room_messages() {
|
|
let pool = setup_test_db().await;
|
|
let repo = MessageRepository::new(pool.clone());
|
|
|
|
// Créer une room d'abord
|
|
let room_repo = RoomRepository::new(pool.clone());
|
|
let creator_id = Uuid::new_v4();
|
|
let room = room_repo
|
|
.create(Some("Test Room"), None, "public", false, creator_id)
|
|
.await
|
|
.expect("Failed to create room");
|
|
|
|
let sender_id = creator_id;
|
|
repo.create(room.id, sender_id, "Message 1").await.unwrap();
|
|
repo.create(room.id, sender_id, "Message 2").await.unwrap();
|
|
|
|
let messages = repo.get_room_messages(room.id, 10).await.unwrap();
|
|
assert_eq!(messages.len(), 2);
|
|
}
|
|
}
|