Skip to content

Commit 043b3db

Browse files
committed
Add Coverage
1 parent f5a12ae commit 043b3db

File tree

5 files changed

+70
-38
lines changed

5 files changed

+70
-38
lines changed

libs/extractor/src/extractor/extract_global_style_from_expression.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,18 @@ pub fn extract_global_style_from_expression<'a>(
5656
)));
5757
}
5858
}
59-
continue;
59+
} else {
60+
styles.extend(
61+
extract_style_from_expression(
62+
ast_builder,
63+
None,
64+
&mut o.value,
65+
0,
66+
&Some(StyleSelector::Global(name.clone(), file.to_string())),
67+
)
68+
.styles,
69+
);
6070
}
61-
styles.extend(
62-
extract_style_from_expression(
63-
ast_builder,
64-
None,
65-
&mut o.value,
66-
0,
67-
&Some(StyleSelector::Global(name.clone(), file.to_string())),
68-
)
69-
.styles,
70-
);
7171
}
7272
}
7373
}

libs/extractor/src/extractor/extract_keyframes_from_expression.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub fn extract_keyframes_from_expression<'a>(
1919
if let Expression::ObjectExpression(obj) = expression {
2020
for p in obj.properties.iter_mut() {
2121
if let ObjectPropertyKind::ObjectProperty(o) = p {
22-
let mut name = if let PropertyKey::StaticIdentifier(ident) = &o.key {
22+
let name = if let PropertyKey::StaticIdentifier(ident) = &o.key {
2323
ident.name.to_string()
2424
} else if let PropertyKey::StringLiteral(s) = &o.key {
2525
s.value.to_string()
@@ -33,10 +33,6 @@ pub fn extract_keyframes_from_expression<'a>(
3333
} else {
3434
continue;
3535
};
36-
// convert number
37-
if let Ok(num) = name.parse::<f64>() {
38-
name = format!("{num}%");
39-
}
4036
let mut styles =
4137
extract_style_from_expression(ast_builder, None, &mut o.value, 0, &None)
4238
.styles
@@ -47,7 +43,10 @@ pub fn extract_keyframes_from_expression<'a>(
4743
})
4844
.collect::<Vec<_>>();
4945
styles.sort_by_key(|a| a.property().to_string());
50-
keyframes.keyframes.insert(name, styles);
46+
keyframes.keyframes.insert(
47+
name.parse::<f64>().map(|v| format!("{v}%")).unwrap_or(name),
48+
styles,
49+
);
5150
}
5251
}
5352
}

libs/extractor/src/extractor/extract_style_from_member_expression.rs

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,7 @@ pub(super) fn extract_style_from_member_expression<'a>(
4040
for (idx, p) in array.elements.iter_mut().enumerate() {
4141
if let ArrayExpressionElement::SpreadElement(sp) = p {
4242
etc = Some(sp.argument.clone_in(ast_builder.allocator));
43-
continue;
44-
}
45-
if idx as f64 == num {
43+
} else if idx as f64 == num {
4644
return extract_style_from_expression(
4745
ast_builder,
4846
name,
@@ -193,25 +191,21 @@ pub(super) fn extract_style_from_member_expression<'a>(
193191
map,
194192
});
195193
}
196-
Expression::Identifier(_) => {
197-
if let Some(name) = name {
198-
ret.push(ExtractStyleProp::Static(ExtractStyleValue::Dynamic(
199-
ExtractDynamicStyle::new(
200-
name,
201-
level,
202-
&expression_to_code(&Expression::ComputedMemberExpression(
203-
ast_builder.alloc_computed_member_expression(
204-
SPAN,
205-
mem.object.clone_in(ast_builder.allocator),
206-
mem_expression.clone_in(ast_builder.allocator),
207-
false,
208-
),
209-
)),
210-
selector.clone(),
194+
Expression::Identifier(_) => ret.push(ExtractStyleProp::Static(
195+
ExtractStyleValue::Dynamic(ExtractDynamicStyle::new(
196+
name.unwrap(),
197+
level,
198+
&expression_to_code(&Expression::ComputedMemberExpression(
199+
ast_builder.alloc_computed_member_expression(
200+
SPAN,
201+
mem.object.clone_in(ast_builder.allocator),
202+
mem_expression.clone_in(ast_builder.allocator),
203+
false,
211204
),
212-
)))
213-
}
214-
}
205+
)),
206+
selector.clone(),
207+
)),
208+
)),
215209
_ => {}
216210
};
217211

libs/extractor/src/lib.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3667,6 +3667,25 @@ export default function Card({
36673667
.unwrap()
36683668
));
36693669
}
3670+
3671+
#[test]
3672+
#[serial]
3673+
fn props_direct_wrong() {
3674+
reset_class_map();
3675+
assert_debug_snapshot!(ToBTreeSet::from(
3676+
extract(
3677+
"test.jsx",
3678+
r#"import {Flex} from '@devup-ui/core'
3679+
;<Flex gap={true[1]} />
3680+
"#,
3681+
ExtractOption {
3682+
package: "@devup-ui/core".to_string(),
3683+
css_file: None
3684+
}
3685+
)
3686+
.unwrap()
3687+
));
3688+
}
36703689
#[test]
36713690
#[serial]
36723691
fn test_component_in_func() {
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
source: libs/extractor/src/lib.rs
3+
expression: "ToBTreeSet::from(extract(\"test.jsx\",\nr#\"import {Flex} from '@devup-ui/core'\n;<Flex gap={true[1]} />\n \"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap())"
4+
---
5+
ToBTreeSet {
6+
styles: {
7+
Static(
8+
ExtractStaticStyle {
9+
property: "display",
10+
value: "flex",
11+
level: 0,
12+
selector: None,
13+
style_order: Some(
14+
0,
15+
),
16+
},
17+
),
18+
},
19+
code: "import \"@devup-ui/core/devup-ui.css\";\n<div className=\"d0\" />;\n",
20+
}

0 commit comments

Comments
 (0)