use crate::define_tool;
define_tool!(GRPCURL, {
command: "grpcurl",
macos: { brew: "grpcurl" },
linux: { uniform: "grpcurl" },
windows: { winget: "fullstorydev.grpcurl" },
});
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn grpcurl_registration_shape() {
assert_eq!(GRPCURL.command, "grpcurl");
let macos = GRPCURL.macos.expect("grpcurl must support macOS");
assert_eq!(
macos.brew,
Some("grpcurl"),
"macOS spec must use brew 'grpcurl'"
);
let windows = GRPCURL.windows.expect("grpcurl must support Windows");
assert_eq!(
windows.winget,
Some("fullstorydev.grpcurl"),
"winget id must be the canonical lowercase fullstorydev.grpcurl, not FullStory.grpcurl"
);
let linux = GRPCURL.linux.expect("grpcurl must support Linux");
for (label, slot) in [
("apt", linux.apt),
("dnf", linux.dnf),
("pacman", linux.pacman),
("apk", linux.apk),
] {
assert_eq!(
slot,
Some("grpcurl"),
"linux {} package must remain `grpcurl`",
label
);
}
}
}