use std::sync::Arc;
use std::sync::LazyLock;
use rocketmq_client_rust::ClientRuntime;
use rocketmq_client_rust::ClientRuntimeConfig;
use rocketmq_client_rust::TelemetryHandle;
use rocketmq_runtime::RuntimeConfig;
use rocketmq_runtime::RuntimeOwner;
static TEST_RUNTIME_OWNER: LazyLock<RuntimeOwner> = LazyLock::new(|| {
RuntimeOwner::plan(RuntimeConfig {
thread_name: "rocketmq-client-integration-test".to_string(),
..Default::default()
})
.expect("test runtime configuration is valid")
.build()
.expect("client integration-test runtime owner should start")
});
pub fn client_runtime(scope: impl Into<rocketmq_runtime::ScopeId>) -> Arc<ClientRuntime> {
ClientRuntime::try_new(
TEST_RUNTIME_OWNER.root_context().component(scope),
ClientRuntimeConfig::default(),
TelemetryHandle::noop(),
)
.expect("client integration-test runtime should be valid")
}