//! `atproto-devtool test ...` subcommand tree.

use clap::Subcommand;
use miette::Report;
use std::process::ExitCode;

pub mod labeler;

use self::labeler::LabelerCmd;

#[derive(Debug, Subcommand)]
pub enum TestCmd {
    /// Run the labeler conformance suite against an atproto labeler.
    Labeler(LabelerCmd),
}

impl TestCmd {
    pub async fn run(self, no_color: bool) -> Result<ExitCode, Report> {
        match self {
            TestCmd::Labeler(cmd) => cmd.run(no_color).await,
        }
    }
}
