#![allow(clippy::duplicate_mod)]
pub mod docker_test_utils;
pub mod mock_backend;
pub mod redis_test_utils;
pub mod test_containers;
#[allow(unused_imports)]
pub use redis_test_utils::{
create_cluster_redis_urls, create_standalone_redis_url, get_redis_url, get_redis_url_insecure, is_redis_available,
is_redis_available_url, wait_for_redis, wait_for_redis_cluster, wait_for_sentinel,
};
#[allow(unused_imports)]
pub use docker_test_utils::{
is_redis_available as docker_is_redis_available, setup_redis_cluster_nodes, setup_redis_container,
wait_for_redis as docker_wait_for_redis, RedisContainer,
};
#[allow(unused_imports)]
pub use test_containers::{
is_redis_available as tc_is_redis_available, start_redis_container, RedisClusterManager,
RedisContainer as AsyncRedisContainer, TestEnvironment,
};
#[allow(unused_imports)]
pub use mock_backend::MockBackend;
use std::sync::Once;
use tracing_subscriber::fmt::format::FmtSpan;
use tracing_subscriber::EnvFilter;
#[allow(dead_code)]
static INIT: Once = Once::new();
#[allow(dead_code)]
pub fn setup_logging() {
INIT.call_once(|| {
tracing_subscriber::fmt()
.with_span_events(FmtSpan::CLOSE)
.with_env_filter(EnvFilter::new("debug"))
.try_init()
.ok();
});
}
use oxcache::Cache;
#[allow(dead_code)]
pub async fn setup_cache() -> Cache<String, Vec<u8>> {
setup_logging();
Cache::builder()
.build()
.await
.unwrap_or_else(|e| panic!("Failed to create memory cache: {}", e))
}
#[allow(dead_code)]
pub fn generate_unique_service_name(base: &str) -> String {
format!("{}_{}", base, uuid::Uuid::new_v4().simple())
}
#[allow(dead_code)]
pub async fn cleanup_service(service_name: &str) {
tokio::fs::remove_file(format!("{}_wal.db", service_name)).await.ok();
tokio::fs::remove_file(format!("{}.db", service_name)).await.ok();
}