54 lines
1.3 KiB
Rust
54 lines
1.3 KiB
Rust
use crate::edit_test::mock::mock_event;
|
|
use crate::util::{redis_stream, setup_db};
|
|
use appflowy_history::core::manager::OpenCollabManager;
|
|
|
|
use collab_stream::client::CONTROL_STREAM_KEY;
|
|
use sqlx::PgPool;
|
|
use std::time::Duration;
|
|
use tokio::time::sleep;
|
|
|
|
mod mock;
|
|
|
|
#[sqlx::test(migrations = false)]
|
|
async fn test(pool: PgPool) {
|
|
setup_db(&pool).await.unwrap();
|
|
let redis_stream = redis_stream().await;
|
|
let _manager = OpenCollabManager::new(redis_stream.clone(), pool).await;
|
|
|
|
let workspace_id = uuid::Uuid::new_v4().to_string();
|
|
let object_id = uuid::Uuid::new_v4().to_string();
|
|
let mock = mock_event(&workspace_id, &object_id).await;
|
|
|
|
let mut control_group = redis_stream
|
|
.collab_control_stream(CONTROL_STREAM_KEY, "appflowy_cloud")
|
|
.await
|
|
.unwrap();
|
|
|
|
// apply open event
|
|
control_group
|
|
.insert_message(mock.open_event.clone())
|
|
.await
|
|
.unwrap();
|
|
|
|
let mut update_group = redis_stream
|
|
.collab_update_stream(&workspace_id, &object_id, "appflowy_cloud")
|
|
.await
|
|
.unwrap();
|
|
|
|
// apply updates
|
|
for update_event in &mock.update_events {
|
|
update_group
|
|
.insert_message(update_event.clone())
|
|
.await
|
|
.unwrap();
|
|
}
|
|
|
|
// apply close event
|
|
control_group
|
|
.insert_message(mock.close_event.clone())
|
|
.await
|
|
.unwrap();
|
|
|
|
sleep(Duration::from_secs(10)).await;
|
|
}
|