super-tool 0.14.0

The Super CLI for verifying software behavior
use std::process::Command;

#[test]
fn both_executables_share_the_canonical_help_version_and_local_profile() {
    let profile = tempfile::TempDir::new().unwrap();
    std::fs::create_dir_all(profile.path().join("updates")).unwrap();
    std::fs::write(profile.path().join("updates/releases.json"), b"{}").unwrap();
    for args in [["--help"], ["--version"], ["logout"]] {
        let outputs: Vec<_> = [env!("CARGO_BIN_EXE_super"), env!("CARGO_BIN_EXE_sup")]
            .into_iter()
            .map(|binary| {
                Command::new(binary)
                    .args(args)
                    .env("SUPER_CONFIG_DIR", profile.path())
                    .env("SUPER_NO_UPDATE_CHECK", "1")
                    .env("NO_COLOR", "1")
                    .output()
                    .unwrap()
            })
            .collect();
        for output in &outputs {
            assert!(output.status.success(), "{output:?}");
        }
        assert_eq!(outputs[0].stdout, outputs[1].stdout);
        assert_eq!(outputs[0].stderr, outputs[1].stderr);
        if args == ["--version"] {
            assert_eq!(
                String::from_utf8_lossy(&outputs[0].stdout),
                concat!("super ", env!("CARGO_PKG_VERSION"), "\n")
            );
        }
    }
}