camber 0.4.2

Opinionated async Rust for IO-bound services on top of Tokio
Documentation
use crate::resources::ExternalRun;

#[test]
fn external_lane_cleanup_uses_unique_resource_names() {
    let first = ExternalRun::parse("run-a").expect("first run ID");
    let second = ExternalRun::parse("run-b").expect("second run ID");
    let runner_sized =
        ExternalRun::parse("0123456789abcdefghijklmnopqrstuv").expect("runner-sized run ID");

    assert_eq!(
        &*first.nats_subject("pubsub"),
        "camber.test.pubsub.72756e2d61"
    );
    assert_eq!(
        &*first.nats_queue_group("queue"),
        "camber-workers-queue-72756e2d61"
    );
    assert_eq!(
        &*first.dns_subdomain("example.com").expect("DNS subdomain"),
        "camber-72756e2d61.example.com"
    );
    assert_ne!(first.nats_subject("pubsub"), second.nats_subject("pubsub"));
    assert_ne!(first.nats_subject("pubsub"), first.nats_subject("queue"));
    assert_ne!(
        first.dns_subdomain("example.com").expect("first domain"),
        second.dns_subdomain("example.com").expect("second domain")
    );
    let runner_domain = runner_sized
        .dns_subdomain("example.com")
        .expect("runner-sized DNS subdomain");
    let run_labels = runner_domain
        .strip_suffix(".example.com")
        .expect("base domain suffix");
    assert_eq!(run_labels.split('.').count(), 2);
    assert!(run_labels.split('.').all(|label| label.len() <= 63));
    assert!(ExternalRun::parse("").is_err());
    assert!(ExternalRun::parse("invalid.run").is_err());
}