use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(name = "pike", about = "Create GitHub issues from the CLI", version)]
pub struct Cli {
#[command(subcommand)]
pub command: Option<Commands>,
}
#[derive(Subcommand)]
pub enum Commands {
/// Configure pike and pre-fetch repository/project data
Setup,
}
#[cfg(test)]
mod tests {
use super::*;
use clap::Parser;
#[test]
fn parse_no_subcommand() {
let cli = Cli::try_parse_from(vec!["pike"]);
assert!(cli.is_ok());
assert!(cli.unwrap().command.is_none());
}
#[test]
fn parse_setup() {
let cli = Cli::try_parse_from(vec!["pike", "setup"]);
assert!(cli.is_ok());
assert!(matches!(cli.unwrap().command, Some(Commands::Setup)));
}
#[test]
fn parse_version() {
let result = Cli::try_parse_from(vec!["pike", "--version"]);
assert!(result.is_err());
}
}