fix: resolve CI/CD issues - remove unused dependencies and imports
- Remove unused thiserror dependency from Cargo.toml - Remove unused imports (Text, Tabs, Widget, Event, KeyCode, KeyEventKind) from tui/mod.rs - Remove unused imports (File, Write) from export/mod.rs - Remove unused pub use ComplexityDistribution from core/analyzer.rs
This commit is contained in:
113
techdebt-tracker-cli/tests/parser_tests.rs
Normal file
113
techdebt-tracker-cli/tests/parser_tests.rs
Normal file
@@ -0,0 +1,113 @@
|
||||
use std::path::PathBuf;
|
||||
|
||||
use techdebt_tracker_cli::core::language::{Language, LanguageParser};
|
||||
use techdebt_tracker_cli::models::{Config, PatternConfig, Priority};
|
||||
|
||||
#[test]
|
||||
fn test_language_from_path_js() {
|
||||
let path = PathBuf::from("test.js");
|
||||
assert_eq!(Language::from_path(&path), Some(Language::JavaScript));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_language_from_path_ts() {
|
||||
let path = PathBuf::from("test.ts");
|
||||
assert_eq!(Language::from_path(&path), Some(Language::TypeScript));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_language_from_path_py() {
|
||||
let path = PathBuf::from("test.py");
|
||||
assert_eq!(Language::from_path(&path), Some(Language::Python));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_language_from_path_rs() {
|
||||
let path = PathBuf::from("test.rs");
|
||||
assert_eq!(Language::from_path(&path), Some(Language::Rust));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_language_from_path_unknown() {
|
||||
let path = PathBuf::from("test.xyz");
|
||||
assert_eq!(Language::from_path(&path), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_language_single_line_comment() {
|
||||
assert_eq!(Language::JavaScript.single_line_comment(), Some("//"));
|
||||
assert_eq!(Language::Python.single_line_comment(), Some("#"));
|
||||
assert_eq!(Language::Rust.single_line_comment(), Some("//"));
|
||||
assert_eq!(Language::Unknown.single_line_comment(), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_language_as_str() {
|
||||
assert_eq!(Language::JavaScript.as_str(), "JavaScript");
|
||||
assert_eq!(Language::Python.as_str(), "Python");
|
||||
assert_eq!(Language::Rust.as_str(), "Rust");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_javascript_comment_parsing() {
|
||||
let content = r#"
|
||||
function test() {
|
||||
// TODO: Implement this
|
||||
return true;
|
||||
}
|
||||
"#;
|
||||
|
||||
let parser = LanguageParser::new(Language::JavaScript);
|
||||
let patterns = vec![PatternConfig {
|
||||
keyword: "TODO".to_string(),
|
||||
priority: Priority::Medium,
|
||||
regex: false,
|
||||
}];
|
||||
|
||||
let items = parser.parse(content, &PathBuf::from("test.js"), &patterns).unwrap();
|
||||
|
||||
assert!(!items.is_empty());
|
||||
assert!(items.iter().any(|i| i.keyword == "TODO"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_python_comment_parsing() {
|
||||
let content = r#"
|
||||
def test():
|
||||
# FIXME: This is broken
|
||||
return True
|
||||
"#;
|
||||
|
||||
let parser = LanguageParser::new(Language::Python);
|
||||
let patterns = vec![PatternConfig {
|
||||
keyword: "FIXME".to_string(),
|
||||
priority: Priority::Critical,
|
||||
regex: false,
|
||||
}];
|
||||
|
||||
let items = parser.parse(content, &PathBuf::from("test.py"), &patterns).unwrap();
|
||||
|
||||
assert!(!items.is_empty());
|
||||
assert!(items.iter().any(|i| i.keyword == "FIXME"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_multiline_comment_parsing() {
|
||||
let content = r#"
|
||||
/*
|
||||
* TODO: Multi-line comment
|
||||
* Need to fix this later
|
||||
*/
|
||||
"#;
|
||||
|
||||
let parser = LanguageParser::new(Language::JavaScript);
|
||||
let patterns = vec![PatternConfig {
|
||||
keyword: "TODO".to_string(),
|
||||
priority: Priority::Medium,
|
||||
regex: false,
|
||||
}];
|
||||
|
||||
let items = parser.parse(content, &PathBuf::from("test.js"), &patterns).unwrap();
|
||||
|
||||
assert!(!items.is_empty());
|
||||
}
|
||||
Reference in New Issue
Block a user