Skip to content

Commit 22cbdb8

Browse files
committed
Add real-world test for split_features() fn
1 parent 07f7539 commit 22cbdb8

File tree

2 files changed

+106
-1
lines changed

2 files changed

+106
-1
lines changed

src/models/feature.rs

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub fn split_features(features: FeaturesMap) -> (FeaturesMap, FeaturesMap) {
1717
#[cfg(test)]
1818
mod tests {
1919
use super::*;
20-
use insta::assert_compact_debug_snapshot;
20+
use insta::{assert_compact_debug_snapshot, assert_debug_snapshot};
2121

2222
#[test]
2323
fn test_split_features_no_deps() {
@@ -96,4 +96,32 @@ mod tests {
9696
assert_compact_debug_snapshot!(features, @r#"{"feature1": ["feature2"], "feature2": ["feature3"]}"#);
9797
assert_compact_debug_snapshot!(features2, @r#"{"feature3": ["dep:foo"]}"#);
9898
}
99+
100+
#[test]
101+
fn test_split_features_clap() {
102+
let json = json!({
103+
"env": ["clap_builder/env"],
104+
"std": ["clap_builder/std"],
105+
"help": ["clap_builder/help"],
106+
"cargo": ["clap_builder/cargo"],
107+
"color": ["clap_builder/color"],
108+
"debug": ["clap_builder/debug", "clap_derive?/debug"],
109+
"usage": ["clap_builder/usage"],
110+
"derive": ["dep:clap_derive"],
111+
"string": ["clap_builder/string"],
112+
"default": ["std", "color", "help", "usage", "error-context", "suggestions"],
113+
"unicode": ["clap_builder/unicode"],
114+
"wrap_help": ["clap_builder/wrap_help"],
115+
"deprecated": ["clap_builder/deprecated", "clap_derive?/deprecated"],
116+
"suggestions": ["clap_builder/suggestions"],
117+
"unstable-v5": ["clap_builder/unstable-v5", "clap_derive?/unstable-v5", "deprecated"],
118+
"unstable-doc": ["clap_builder/unstable-doc", "derive"],
119+
"unstable-ext": ["clap_builder/unstable-ext"],
120+
"error-context": ["clap_builder/error-context"],
121+
"unstable-styles": ["clap_builder/unstable-styles"]
122+
});
123+
124+
let features = serde_json::from_value::<FeaturesMap>(json).unwrap();
125+
assert_debug_snapshot!(split_features(features));
126+
}
99127
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
---
2+
source: src/models/feature.rs
3+
expression: split_features(features)
4+
---
5+
(
6+
{
7+
"cargo": [
8+
"clap_builder/cargo",
9+
],
10+
"color": [
11+
"clap_builder/color",
12+
],
13+
"default": [
14+
"std",
15+
"color",
16+
"help",
17+
"usage",
18+
"error-context",
19+
"suggestions",
20+
],
21+
"env": [
22+
"clap_builder/env",
23+
],
24+
"error-context": [
25+
"clap_builder/error-context",
26+
],
27+
"help": [
28+
"clap_builder/help",
29+
],
30+
"std": [
31+
"clap_builder/std",
32+
],
33+
"string": [
34+
"clap_builder/string",
35+
],
36+
"suggestions": [
37+
"clap_builder/suggestions",
38+
],
39+
"unicode": [
40+
"clap_builder/unicode",
41+
],
42+
"unstable-doc": [
43+
"clap_builder/unstable-doc",
44+
"derive",
45+
],
46+
"unstable-ext": [
47+
"clap_builder/unstable-ext",
48+
],
49+
"unstable-styles": [
50+
"clap_builder/unstable-styles",
51+
],
52+
"usage": [
53+
"clap_builder/usage",
54+
],
55+
"wrap_help": [
56+
"clap_builder/wrap_help",
57+
],
58+
},
59+
{
60+
"debug": [
61+
"clap_builder/debug",
62+
"clap_derive?/debug",
63+
],
64+
"deprecated": [
65+
"clap_builder/deprecated",
66+
"clap_derive?/deprecated",
67+
],
68+
"derive": [
69+
"dep:clap_derive",
70+
],
71+
"unstable-v5": [
72+
"clap_builder/unstable-v5",
73+
"clap_derive?/unstable-v5",
74+
"deprecated",
75+
],
76+
},
77+
)

0 commit comments

Comments
 (0)