use async_nats::jetstream;
use nats_server::Server;
pub fn start_jetstream_server() -> Server {
nats_server::run_server("tests/configs/jetstream.conf")
}
pub async fn create_jetstream_context(url: &str) -> jetstream::Context {
let client = async_nats::connect(url)
.await
.expect("Failed to connect to NATS server");
jetstream::new(client)
}
pub async fn create_counter_stream(
js: &jetstream::Context,
name: &str,
subjects: Vec<String>,
) -> jetstream::stream::Stream {
let config = jetstream::stream::Config {
name: name.to_string(),
subjects,
allow_message_counter: true,
allow_direct: true,
..Default::default()
};
js.create_stream(config)
.await
.expect("Failed to create counter stream")
}