Skip to content

Commit 7f6f0a0

Browse files
committed
Add real-world test for split_features() fn
1 parent c2d9c8f commit 7f6f0a0

File tree

3 files changed

+111
-1
lines changed

3 files changed

+111
-1
lines changed

src/models/feature.rs

Lines changed: 32 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,35 @@ 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+
let (features, features2) = split_features(features);
126+
127+
assert_debug_snapshot!(features);
128+
assert_debug_snapshot!(features2);
129+
}
99130
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
source: src/models/feature.rs
3+
expression: features2
4+
---
5+
{
6+
"debug": [
7+
"clap_builder/debug",
8+
"clap_derive?/debug",
9+
],
10+
"deprecated": [
11+
"clap_builder/deprecated",
12+
"clap_derive?/deprecated",
13+
],
14+
"derive": [
15+
"dep:clap_derive",
16+
],
17+
"unstable-v5": [
18+
"clap_builder/unstable-v5",
19+
"clap_derive?/unstable-v5",
20+
"deprecated",
21+
],
22+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
source: src/models/feature.rs
3+
expression: features
4+
---
5+
{
6+
"cargo": [
7+
"clap_builder/cargo",
8+
],
9+
"color": [
10+
"clap_builder/color",
11+
],
12+
"default": [
13+
"std",
14+
"color",
15+
"help",
16+
"usage",
17+
"error-context",
18+
"suggestions",
19+
],
20+
"env": [
21+
"clap_builder/env",
22+
],
23+
"error-context": [
24+
"clap_builder/error-context",
25+
],
26+
"help": [
27+
"clap_builder/help",
28+
],
29+
"std": [
30+
"clap_builder/std",
31+
],
32+
"string": [
33+
"clap_builder/string",
34+
],
35+
"suggestions": [
36+
"clap_builder/suggestions",
37+
],
38+
"unicode": [
39+
"clap_builder/unicode",
40+
],
41+
"unstable-doc": [
42+
"clap_builder/unstable-doc",
43+
"derive",
44+
],
45+
"unstable-ext": [
46+
"clap_builder/unstable-ext",
47+
],
48+
"unstable-styles": [
49+
"clap_builder/unstable-styles",
50+
],
51+
"usage": [
52+
"clap_builder/usage",
53+
],
54+
"wrap_help": [
55+
"clap_builder/wrap_help",
56+
],
57+
}

0 commit comments

Comments
 (0)