AppFlowy-Cloud/services/appflowy-history/tests/edit_test/mod.rs

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;
}