event-publisher, export, rss, media-server, object-storage, nats(config).
Kept inline (private fn, no public path): nats src/subject.rs
tests::{review_logged_subject,review_updated_subject,movie_discovered_subject,
consumer_subject_filter_appends_wildcard} - event_to_subject/consumer_subject_filter private.
object-storage build_local_store tests rewritten via StorageConfig::from_config.
41 lines
1.1 KiB
Rust
41 lines
1.1 KiB
Rust
use nats::{NatsConfig, NatsMode};
|
|
|
|
fn section(url: Option<&str>, mode: &str) -> config::NatsConfig {
|
|
config::NatsConfig {
|
|
url: url.map(str::to_owned),
|
|
mode: mode.into(),
|
|
..Default::default()
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn errors_without_nats_url() {
|
|
assert!(NatsConfig::from_config(&config::NatsConfig::default()).is_err());
|
|
}
|
|
|
|
#[test]
|
|
fn defaults_with_only_url() {
|
|
let cfg = NatsConfig::from_config(&config::NatsConfig {
|
|
url: Some("nats://localhost:4222".into()),
|
|
..Default::default()
|
|
})
|
|
.unwrap();
|
|
assert_eq!(cfg.url, "nats://localhost:4222");
|
|
assert_eq!(cfg.mode, NatsMode::JetStream);
|
|
assert_eq!(cfg.subject_prefix, "movies-diary.events");
|
|
assert_eq!(cfg.stream_name, "MOVIES_DIARY_EVENTS");
|
|
assert_eq!(cfg.consumer_name, "worker");
|
|
}
|
|
|
|
#[test]
|
|
fn core_mode_parsed() {
|
|
let cfg = NatsConfig::from_config(§ion(Some("nats://test:4222"), "core")).unwrap();
|
|
assert_eq!(cfg.url, "nats://test:4222");
|
|
assert_eq!(cfg.mode, NatsMode::Core);
|
|
}
|
|
|
|
#[test]
|
|
fn invalid_mode_errors() {
|
|
assert!(NatsConfig::from_config(§ion(Some("nats://test:4222"), "kafka")).is_err());
|
|
}
|