#![cfg_attr(coverage_nightly, coverage(off))]
use super::misc_commands::AnnotateOutputFormat;
use clap::Subcommand;
use std::path::PathBuf;
include!("work_commands_work.rs");
include!("work_commands_qa.rs");
include!("work_commands_test_discovery.rs");
#[derive(Debug, Clone, Copy, clap::ValueEnum, PartialEq)]
pub enum SyncDirection {
YamlToGithub,
GithubToYaml,
Full,
}
#[derive(Debug, Clone, Copy, clap::ValueEnum, PartialEq, Default)]
pub enum WorkPriority {
Low,
#[default]
Medium,
High,
Critical,
}
impl WorkPriority {
pub fn to_roadmap_priority(self) -> crate::models::roadmap::Priority {
match self {
WorkPriority::Low => crate::models::roadmap::Priority::Low,
WorkPriority::Medium => crate::models::roadmap::Priority::Medium,
WorkPriority::High => crate::models::roadmap::Priority::High,
WorkPriority::Critical => crate::models::roadmap::Priority::Critical,
}
}
}
#[derive(Debug, Clone, Copy, clap::ValueEnum, PartialEq)]
pub enum QaTaskType {
Feature,
Bugfix,
Refactor,
Docs,
Performance,
Security,
}
#[derive(Debug, Clone, Copy, clap::ValueEnum, PartialEq)]
pub enum QaOutputFormat {
Text,
Json,
Yaml,
Markdown,
}
#[cfg(test)]
mod work_commands_tests {
use super::*;
use crate::models::roadmap::Priority;
#[test]
fn test_to_roadmap_priority_low() {
assert!(matches!(
WorkPriority::Low.to_roadmap_priority(),
Priority::Low
));
}
#[test]
fn test_to_roadmap_priority_medium() {
assert!(matches!(
WorkPriority::Medium.to_roadmap_priority(),
Priority::Medium
));
}
#[test]
fn test_to_roadmap_priority_high() {
assert!(matches!(
WorkPriority::High.to_roadmap_priority(),
Priority::High
));
}
#[test]
fn test_to_roadmap_priority_critical() {
assert!(matches!(
WorkPriority::Critical.to_roadmap_priority(),
Priority::Critical
));
}
}