12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- //! Tests to ensure that documents are garbage collected.
- use std::time::Duration;
- use anyhow::Result;
- use common::*;
- use operational_transform::OperationSeq;
- use rustpad_server::{server, ServerConfig};
- use serde_json::json;
- use tokio::time;
- pub mod common;
- #[tokio::test]
- async fn test_cleanup() -> Result<()> {
- pretty_env_logger::try_init().ok();
- let filter = server(ServerConfig {
- expiry_days: 2,
- ..ServerConfig::default()
- });
- expect_text(&filter, "old", "").await;
- let mut client = connect(&filter, "old").await?;
- let msg = client.recv().await?;
- assert_eq!(msg, json!({ "Identity": 0 }));
- let mut operation = OperationSeq::default();
- operation.insert("hello");
- let msg = json!({
- "Edit": {
- "revision": 0,
- "operation": operation
- }
- });
- client.send(&msg).await;
- let msg = client.recv().await?;
- msg.get("History")
- .expect("should receive history operation");
- expect_text(&filter, "old", "hello").await;
- let hour = Duration::from_secs(3600);
- time::pause();
- time::advance(47 * hour).await;
- expect_text(&filter, "old", "hello").await;
- time::advance(3 * hour).await;
- expect_text(&filter, "old", "").await;
- Ok(())
- }
|