use crate::define_tool;
define_tool!(NATS, {
command: "nats",
macos: { brew: "nats-io/nats-tools/nats" },
linux: { brew: "nats-io/nats-tools/nats" },
windows: { winget: "NATSAuthors.CLI" },
category: "messaging",
});
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn nats_registration_shape() {
assert_eq!(NATS.command, "nats");
assert_eq!(NATS.category, Some("messaging"));
let mac = NATS.macos.expect("nats must support macOS");
assert_eq!(
mac.brew,
Some("nats-io/nats-tools/nats"),
"macOS formula lives in the nats-io/nats-tools tap (verify upstream if this fails — formula may have promoted to homebrew-core)"
);
let linux = NATS.linux.expect("nats must support Linux");
assert_eq!(
linux.brew,
Some("nats-io/nats-tools/nats"),
"Linux install path is Linuxbrew via the nats-io tap"
);
let win = NATS.windows.expect("nats must support Windows");
assert_eq!(
win.winget,
Some("NATSAuthors.CLI"),
"winget id verified against microsoft/winget-pkgs as NATSAuthors.CLI"
);
}
}