Skip to content

Commit

Permalink
Add tests for nested pseudo
Browse files Browse the repository at this point in the history
  • Loading branch information
davesnx committed Jul 9, 2024
1 parent abfd165 commit 7653ee6
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
1 change: 1 addition & 0 deletions packages/runtime/native/Emotion.ml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ let resolve_ampersand hash selector =
let resolved_selector = replace_ampersand ~by:classname selector in
if contains_ampersand selector then resolved_selector
else if starts_with_at selector then resolved_selector
(* This is the differente between SASS and Emotion. Emotion doesn't add a space on pseuo-selectors, while SASS does *)
else if starts_with_double_dot selector then
Printf.sprintf ".%s%s" hash resolved_selector
else Printf.sprintf ".%s %s" hash resolved_selector
Expand Down
23 changes: 23 additions & 0 deletions packages/runtime/test/test_styles.ml
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,28 @@ let ampersand_everywhere_2 =
".%s { font-size: 1px; } .felipe .%s .lola { display: none; }" classname
classname)

let pseudo_selectors_everywhere =
test "pseudo_selectors_everywhere " @@ fun () ->
let classname =
[%cx
{|
display: block;

::before {
display: none;
::after {
display: none;
}
}
|}]
in
let css = get_string_style_rules () in
assert_string css
(Printf.sprintf
".%s { display: block; } .%s::before { display: none; } \
.%s::before::after { display: none; }"
classname classname classname)

let selector_ampersand_with_no_space =
test "selector_ampersand_with_space" @@ fun () ->
let classname =
Expand Down Expand Up @@ -1098,6 +1120,7 @@ let tests =
selector_with_interp_and_pseudo;
pseudo_selectors;
pseudo_selectors_2;
pseudo_selectors_everywhere;
selector_nested_with_pseudo;
selector_nested_with_pseudo_2;
selector_nested_with_pseudo_3;
Expand Down

0 comments on commit 7653ee6

Please sign in to comment.