This commit is contained in:
52
tests/analysis_tests.rs
Normal file
52
tests/analysis_tests.rs
Normal file
@@ -0,0 +1,52 @@
|
||||
use std::path::PathBuf;
|
||||
|
||||
use techdebt_tracker_cli::models::{Priority, TechDebtItem, FileLocation};
|
||||
|
||||
#[test]
|
||||
fn test_priority_from_keyword() {
|
||||
assert_eq!(Priority::from_keyword("FIXME"), Priority::Critical);
|
||||
assert_eq!(Priority::from_keyword("BUG"), Priority::Critical);
|
||||
assert_eq!(Priority::from_keyword("TODO"), Priority::Medium);
|
||||
assert_eq!(Priority::from_keyword("HACK"), Priority::Low);
|
||||
assert_eq!(Priority::from_keyword("XXX"), Priority::High);
|
||||
assert_eq!(Priority::from_keyword("NOTE"), Priority::Low);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_priority_ordering() {
|
||||
assert!(Priority::Critical > Priority::High);
|
||||
assert!(Priority::High > Priority::Medium);
|
||||
assert!(Priority::Medium > Priority::Low);
|
||||
assert!(Priority::Low < Priority::Critical);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_priority_as_str() {
|
||||
assert_eq!(Priority::Critical.as_str(), "Critical");
|
||||
assert_eq!(Priority::High.as_str(), "High");
|
||||
assert_eq!(Priority::Medium.as_str(), "Medium");
|
||||
assert_eq!(Priority::Low.as_str(), "Low");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_tech_debt_item_creation() {
|
||||
let location = FileLocation {
|
||||
path: PathBuf::from("/test/file.rs"),
|
||||
line: 10,
|
||||
column: 5,
|
||||
end_line: None,
|
||||
end_column: None,
|
||||
};
|
||||
|
||||
let item = TechDebtItem::new(
|
||||
"FIXME".to_string(),
|
||||
"This is a test fixme".to_string(),
|
||||
location,
|
||||
"Rust".to_string(),
|
||||
techdebt_tracker_cli::models::CommentType::SingleLine,
|
||||
);
|
||||
|
||||
assert_eq!(item.keyword, "FIXME");
|
||||
assert_eq!(item.priority, Priority::Critical);
|
||||
assert!(!item.id.is_empty());
|
||||
}
|
||||
Reference in New Issue
Block a user