57 lines
1.8 KiB
Rust
57 lines
1.8 KiB
Rust
use crate::sql_test::util::{generate_random_bytes, setup_db, test_create_user};
|
|
|
|
use collab_entity::CollabType;
|
|
use database::collab::{insert_into_af_collab, select_collab_meta_from_af_collab};
|
|
use database_entity::dto::CollabParams;
|
|
use sqlx::PgPool;
|
|
|
|
#[sqlx::test(migrations = false)]
|
|
async fn insert_collab_sql_test(pool: PgPool) {
|
|
setup_db(&pool).await.unwrap();
|
|
|
|
let user_uuid = uuid::Uuid::new_v4();
|
|
let name = user_uuid.to_string();
|
|
let email = format!("{}@appflowy.io", name);
|
|
let user = test_create_user(&pool, user_uuid, &email, &name)
|
|
.await
|
|
.unwrap();
|
|
|
|
let mut object_ids = vec![];
|
|
|
|
let data_sizes = vec![1024, 10240, 102400, 1024000]; // Example sizes: 1KB, 10KB, 100KB, 1MB
|
|
for &data_size in &data_sizes {
|
|
let encoded_collab_v1 = generate_random_bytes(data_size);
|
|
let object_id = uuid::Uuid::new_v4().to_string();
|
|
object_ids.push(object_id.clone());
|
|
let start_time = std::time::Instant::now(); // Start timing
|
|
let mut txn = pool.begin().await.unwrap();
|
|
let params = CollabParams {
|
|
object_id,
|
|
collab_type: CollabType::Unknown,
|
|
encoded_collab_v1: encoded_collab_v1.into(),
|
|
embeddings: None,
|
|
};
|
|
insert_into_af_collab(&mut txn, &user.uid, &user.workspace_id, ¶ms)
|
|
.await
|
|
.unwrap();
|
|
txn.commit().await.unwrap();
|
|
let duration = start_time.elapsed(); // End timing
|
|
println!(
|
|
"Data size: {} bytes, Insert time: {:?}",
|
|
data_size, duration
|
|
);
|
|
}
|
|
|
|
for object_id in object_ids {
|
|
let meta = select_collab_meta_from_af_collab(&pool, &object_id, &CollabType::Unknown)
|
|
.await
|
|
.unwrap()
|
|
.unwrap();
|
|
|
|
assert_eq!(meta.oid, object_id);
|
|
assert_eq!(meta.workspace_id.to_string(), user.workspace_id);
|
|
assert!(meta.created_at.is_some());
|
|
assert!(meta.deleted_at.is_none());
|
|
}
|
|
}
|