diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-06-30 04:51:15 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-06-30 04:51:15 +0800 |
| commit | 9dab47f47da4d6ae9333617d7ea6cbc077efdc67 (patch) | |
| tree | e65936679168111ced00e77b8fa93f2ca3ae73f6 /mingling_pathf/test/src/lib.rs | |
| parent | 69e5fd86b4532d3dfa7c503f74d42a64a845d57e (diff) | |
fix(dispatcher_clap): support dispatch tree pattern detection
Diffstat (limited to 'mingling_pathf/test/src/lib.rs')
| -rw-r--r-- | mingling_pathf/test/src/lib.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/mingling_pathf/test/src/lib.rs b/mingling_pathf/test/src/lib.rs index 6fce3b2..f25b094 100644 --- a/mingling_pathf/test/src/lib.rs +++ b/mingling_pathf/test/src/lib.rs @@ -357,3 +357,30 @@ fn test_dispatcher_clap_analyze() { assert!(r.contains(*entry), "Result should contain: {}", entry); } } + +#[test] +fn test_dispatcher_clap_dispatch_tree() { + use mingling_pathf::config::PathfinderConfig; + use mingling_pathf::pattern_analyzer; + + let file = current_dir() + .unwrap() + .join("src/test_files/test_dispatcher_clap.rs"); + + // Without dispatch_tree: 26 items (same set as test_dispatcher_clap_analyze) + let r1 = pattern_analyzer::init().analyze_file(&file).unwrap(); + assert_eq!(r1.len(), 26); + + // With dispatch_tree: 26 + 4 __internal (root) + 3 __internal (sub, no "full") = 33 + let r2 = pattern_analyzer::init_with_config(PathfinderConfig::with_dispatch_tree()) + .analyze_file(&file) + .unwrap(); + assert_eq!(r2.len(), 33); + assert!(r2.contains("::__internal_dispatcher_greet")); + assert!(r2.contains("::__internal_dispatcher_delete")); + assert!(r2.contains("::__internal_dispatcher_helpcmd")); + assert!(r2.contains("::__internal_dispatcher_full")); + assert!(r2.contains("::sub::__internal_dispatcher_greet")); + assert!(r2.contains("::sub::__internal_dispatcher_delete")); + assert!(r2.contains("::sub::__internal_dispatcher_helpcmd")); +} |
