64 lines
1.5 KiB
Rust
64 lines
1.5 KiB
Rust
use anyhow::Context;
|
|
use appflowy_collaborate::shared_state::RealtimeSharedState;
|
|
|
|
async fn redis_client() -> redis::Client {
|
|
let redis_uri = "redis://localhost:6379";
|
|
redis::Client::open(redis_uri)
|
|
.context("failed to connect to redis")
|
|
.unwrap()
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn connected_user_test() {
|
|
let redis_client = redis_client().await;
|
|
let shared_state = RealtimeSharedState::new(redis_client.get_connection_manager().await.unwrap());
|
|
|
|
let device_id = uuid::Uuid::new_v4().to_string();
|
|
let is_connected = shared_state
|
|
.is_user_connected(&1, &device_id)
|
|
.await
|
|
.unwrap();
|
|
assert!(!is_connected);
|
|
|
|
shared_state
|
|
.add_connected_user(1, &device_id)
|
|
.await
|
|
.unwrap();
|
|
|
|
let is_connected = shared_state
|
|
.is_user_connected(&1, &device_id)
|
|
.await
|
|
.unwrap();
|
|
assert!(is_connected);
|
|
|
|
shared_state
|
|
.remove_connected_user(1, &device_id)
|
|
.await
|
|
.unwrap();
|
|
|
|
let is_connected = shared_state
|
|
.is_user_connected(&1, &device_id)
|
|
.await
|
|
.unwrap();
|
|
assert!(!is_connected);
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn remove_all_connected_user_test() {
|
|
let redis_client = redis_client().await;
|
|
let shared_state = RealtimeSharedState::new(redis_client.get_connection_manager().await.unwrap());
|
|
|
|
let device_id = uuid::Uuid::new_v4().to_string();
|
|
shared_state
|
|
.add_connected_user(1, &device_id)
|
|
.await
|
|
.unwrap();
|
|
shared_state.remove_all_connected_users().await.unwrap();
|
|
|
|
let is_connected = shared_state
|
|
.is_user_connected(&1, &device_id)
|
|
.await
|
|
.unwrap();
|
|
assert!(!is_connected);
|
|
}
|