From e496f7a821828e441ea8a92ccfa87646c1c3f16c Mon Sep 17 00:00:00 2001 From: nazeh Date: Wed, 4 Sep 2024 10:53:03 +0300 Subject: [PATCH] test(pubky): put event get sequence --- pubky/src/native.rs | 4 +-- pubky/src/shared/public.rs | 50 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/pubky/src/native.rs b/pubky/src/native.rs index 7af0a05..7d96369 100644 --- a/pubky/src/native.rs +++ b/pubky/src/native.rs @@ -74,14 +74,14 @@ impl PubkyClient { /// Creates a [PubkyClient] with: /// - DHT bootstrap nodes set to the `testnet` bootstrap nodes. - /// - DHT request timout set to 500 milliseconds. (unless in CI, then it is left as default) + /// - DHT request timout set to 500 milliseconds. (unless in CI, then it is left as default 2000) /// /// For more control, you can use [PubkyClientBuilder::testnet] pub fn test(testnet: &Testnet) -> PubkyClient { let mut builder = PubkyClient::builder().testnet(testnet); if std::env::var("CI").is_err() { - builder = builder.dht_request_timeout(Duration::from_millis(100)); + builder = builder.dht_request_timeout(Duration::from_millis(500)); } builder.build() diff --git a/pubky/src/shared/public.rs b/pubky/src/shared/public.rs index 10d8d91..febd1fe 100644 --- a/pubky/src/shared/public.rs +++ b/pubky/src/shared/public.rs @@ -715,4 +715,54 @@ mod tests { ) } } + + #[tokio::test] + async fn read_after_event() { + let testnet = Testnet::new(10); + let server = Homeserver::start_test(&testnet).await.unwrap(); + + let client = PubkyClient::test(&testnet); + + let keypair = Keypair::random(); + + client.signup(&keypair, &server.public_key()).await.unwrap(); + + let pubky = keypair.public_key(); + + let url = format!("pubky://{pubky}/pub/a.com/a.txt"); + + client.put(url.as_str(), &[0]).await.unwrap(); + + let feed_url = format!("http://localhost:{}/events/", server.port()); + let feed_url = feed_url.as_str(); + + let client = PubkyClient::test(&testnet); + + { + let response = client + .request( + Method::GET, + format!("{feed_url}?limit=10").as_str().try_into().unwrap(), + ) + .send() + .await + .unwrap(); + + let text = response.text().await.unwrap(); + let lines = text.split('\n').collect::>(); + + let cursor = lines.last().unwrap().split(" ").last().unwrap().to_string(); + + assert_eq!( + lines, + vec![ + format!("PUT pubky://{pubky}/pub/a.com/a.txt"), + format!("cursor: {cursor}",) + ] + ); + } + + let get = client.get(url.as_str()).await.unwrap(); + dbg!(get); + } }