177 lines
4.9 KiB
Rust
177 lines
4.9 KiB
Rust
#![allow(clippy::unwrap_used)]
|
|
|
|
mod callback_info_tests;
|
|
use dotenvy;
|
|
|
|
use super::CallDB;
|
|
use super::DB;
|
|
|
|
async fn setup_db() -> DB {
|
|
dotenvy::dotenv().unwrap();
|
|
let db_url = std::env::var("DATABASE_URL").unwrap();
|
|
|
|
DB::new(db_url, "gongbot".to_string()).await.unwrap()
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_get_media() {
|
|
let mut db = setup_db().await;
|
|
|
|
let _result = db.drop_media("test_get_media_literal").await.unwrap();
|
|
|
|
let media_items = db.get_media("test_get_media_literal").await.unwrap();
|
|
assert_eq!(media_items.len(), 0);
|
|
|
|
let _result = db
|
|
.add_media("test_get_media_literal", "photo", "file_id_1", None)
|
|
.await
|
|
.unwrap();
|
|
|
|
let media_items = db.get_media("test_get_media_literal").await.unwrap();
|
|
assert_eq!(media_items.len(), 1);
|
|
|
|
let _result = db
|
|
.add_media("test_get_media_literal", "video", "file_id_2", None)
|
|
.await
|
|
.unwrap();
|
|
|
|
let media_items = db.get_media("test_get_media_literal").await.unwrap();
|
|
assert_eq!(media_items.len(), 2);
|
|
|
|
// Clean up after test
|
|
let _result = db.drop_media("test_get_media_literal").await.unwrap();
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_add_media() {
|
|
let mut db = setup_db().await;
|
|
|
|
let literal = "test_literal";
|
|
let media_type = "photo";
|
|
let file_id = "LjaldhAOh";
|
|
|
|
let _result = db.drop_media(literal).await.unwrap();
|
|
|
|
let _result = db
|
|
.add_media(literal, media_type, file_id, None)
|
|
.await
|
|
.unwrap();
|
|
|
|
// Verify that the media was added is correct
|
|
let media_items = db.get_media(literal).await.unwrap();
|
|
assert_eq!(media_items.len(), 1);
|
|
assert_eq!(media_items[0].token, literal);
|
|
assert_eq!(media_items[0].media_type, media_type);
|
|
assert_eq!(media_items[0].file_id, file_id);
|
|
|
|
// Clean up after test
|
|
let _result = db.drop_media(literal).await.unwrap();
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_drop_media() {
|
|
let mut db = setup_db().await;
|
|
|
|
let _result = db
|
|
.add_media("test_drop_media_literal", "photo", "file_id_1", None)
|
|
.await
|
|
.unwrap();
|
|
|
|
// Verify that the media was added
|
|
let media_items = db.get_media("test_drop_media_literal").await.unwrap();
|
|
assert_eq!(media_items.len(), 1);
|
|
|
|
let _result = db.drop_media("test_drop_media_literal").await.unwrap();
|
|
|
|
// Verify that the media has been dropped
|
|
let media_items = db.get_media("test_drop_media_literal").await.unwrap();
|
|
assert_eq!(media_items.len(), 0);
|
|
|
|
// Clean up after test
|
|
let _result = db.drop_media("test_drop_media_literal").await.unwrap();
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_is_media_group_exists() {
|
|
let mut db = setup_db().await;
|
|
|
|
let media_group = "test_media_group";
|
|
let literal = "test_media_group_literal";
|
|
|
|
let _ = db.drop_media(literal).await.unwrap();
|
|
|
|
let exists = db.is_media_group_exists(media_group).await.unwrap();
|
|
assert!(!exists);
|
|
|
|
let _ = db
|
|
.add_media(literal, "photo", "file_id_1", Some(media_group))
|
|
.await
|
|
.unwrap();
|
|
|
|
let exists = db.is_media_group_exists(media_group).await.unwrap();
|
|
assert!(exists);
|
|
|
|
let _ = db.drop_media(literal).await.unwrap();
|
|
|
|
let exists = db.is_media_group_exists(media_group).await.unwrap();
|
|
assert!(!exists);
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_drop_media_except() {
|
|
let mut db = setup_db().await;
|
|
|
|
let media_group = "test_media_group_except";
|
|
let literal = "test_media_group_except_literal";
|
|
let _ = db.drop_media(literal).await.unwrap();
|
|
|
|
let _ = db
|
|
.add_media(literal, "photo", "file_id_2", None)
|
|
.await
|
|
.unwrap();
|
|
let _ = db
|
|
.add_media(literal, "photo", "file_id_3", None)
|
|
.await
|
|
.unwrap();
|
|
|
|
let media_items = db.get_media(literal).await.unwrap();
|
|
assert_eq!(media_items.len(), 2);
|
|
|
|
let _deleted_count = db.drop_media_except(literal, media_group).await.unwrap();
|
|
let media_items = db.get_media(literal).await.unwrap();
|
|
assert_eq!(media_items.len(), 0);
|
|
|
|
let _ = db
|
|
.add_media(literal, "photo", "file_id_1", Some(media_group))
|
|
.await
|
|
.unwrap();
|
|
let _ = db
|
|
.add_media(literal, "photo", "file_id_2", None)
|
|
.await
|
|
.unwrap();
|
|
let _ = db
|
|
.add_media(literal, "photo", "file_id_3", None)
|
|
.await
|
|
.unwrap();
|
|
|
|
let _deleted_count = db.drop_media_except(literal, media_group).await.unwrap();
|
|
let media_items = db.get_media(literal).await.unwrap();
|
|
assert_eq!(media_items.len(), 1);
|
|
let _ = db.drop_media(literal).await.unwrap();
|
|
|
|
let _ = db
|
|
.add_media(literal, "photo", "file_id_1", Some(media_group))
|
|
.await
|
|
.unwrap();
|
|
let _ = db
|
|
.add_media(literal, "photo", "file_id_2", Some(media_group))
|
|
.await
|
|
.unwrap();
|
|
|
|
let _deleted_count = db.drop_media_except(literal, media_group).await.unwrap();
|
|
let media_items = db.get_media(literal).await.unwrap();
|
|
assert_eq!(media_items.len(), 2);
|
|
|
|
let _ = db.drop_media(literal).await.unwrap();
|
|
}
|