mirror of
https://github.com/scsibug/nostr-rs-relay.git
synced 2024-11-21 16:59:06 -05:00
test: wip integration test for event publishing
This commit is contained in:
parent
05f70112e8
commit
c3e13af9e3
|
@ -40,7 +40,7 @@ description = "A newly created nostr-rs-relay.\n\nCustomize this with your own i
|
||||||
# Use an in-memory database instead of 'nostr.db'.
|
# Use an in-memory database instead of 'nostr.db'.
|
||||||
# Requires sqlite engine.
|
# Requires sqlite engine.
|
||||||
# Caution; this will not survive a process restart!
|
# Caution; this will not survive a process restart!
|
||||||
#in_memory = false
|
in_memory = true
|
||||||
|
|
||||||
# Database connection pool settings for subscribers:
|
# Database connection pool settings for subscribers:
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
use futures::SinkExt;
|
||||||
|
use futures::StreamExt;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
use tokio_tungstenite::connect_async;
|
||||||
|
use tracing::info;
|
||||||
mod common;
|
mod common;
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
|
@ -45,3 +47,33 @@ async fn relay_home_page() -> Result<()> {
|
||||||
let _res = relay.shutdown_tx.send(());
|
let _res = relay.shutdown_tx.send(());
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//#[tokio::test]
|
||||||
|
// Still inwork
|
||||||
|
async fn publish_test() -> Result<()> {
|
||||||
|
// get a relay and wait for startup
|
||||||
|
let relay = common::start_relay()?;
|
||||||
|
common::wait_for_healthy_relay(&relay).await?;
|
||||||
|
// open a non-secure websocket connection.
|
||||||
|
let (mut ws, _res) = connect_async(format!("ws://localhost:{}", relay.port)).await?;
|
||||||
|
// send a simple pre-made message
|
||||||
|
let simple_event = r#"["EVENT", {"content": "hello world","created_at": 1691239763,
|
||||||
|
"id":"f3ce6798d70e358213ebbeba4886bbdfacf1ecfd4f65ee5323ef5f404de32b86",
|
||||||
|
"kind": 1,
|
||||||
|
"pubkey": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
|
||||||
|
"sig": "30ca29e8581eeee75bf838171dec818af5e6de2b74f5337de940f5cc91186534c0b20d6cf7ad1043a2c51dbd60b979447720a471d346322103c83f6cb66e4e98",
|
||||||
|
"tags": []}]"#;
|
||||||
|
ws.send(simple_event.into()).await?;
|
||||||
|
// get response from server, confirm it is an array with first element "OK"
|
||||||
|
let event_confirm = ws.next().await;
|
||||||
|
ws.close(None).await?;
|
||||||
|
info!("event confirmed: {:?}", event_confirm);
|
||||||
|
// open a new connection, and wait for some time to get the event.
|
||||||
|
let (mut sub_ws, _res) = connect_async(format!("ws://localhost:{}", relay.port)).await?;
|
||||||
|
let event_sub = r#"["REQ", "simple", {}]"#;
|
||||||
|
sub_ws.send(event_sub.into()).await?;
|
||||||
|
// read from subscription
|
||||||
|
let ws_next = sub_ws.next().await;
|
||||||
|
let _res = relay.shutdown_tx.send(());
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user