@@ -82,7 +82,7 @@ class SelectorsTest < Minitest::Spec
8282 end
8383 end
8484
85- it "parses a compound selector with a pseudo-class" do
85+ it "parses a compound selector with a pseudo-class selector " do
8686 actual = parse_selectors ( "div.flex:hover" )
8787
8888 assert_pattern do
@@ -98,6 +98,33 @@ class SelectorsTest < Minitest::Spec
9898 end
9999 end
100100
101+ it "parses a compound selector with a pseudo-class function" do
102+ actual = parse_selectors ( ".flex:not(div, span.wide, .hidden)" )
103+
104+ assert_pattern do
105+ actual => [
106+ Selectors ::CompoundSelector [
107+ type : nil ,
108+ subclasses : [
109+ Selectors ::ClassSelector [ value : { value : "flex" } ] ,
110+ Selectors ::PseudoClassSelector [
111+ value : Selectors ::PseudoClassFunction [
112+ name : "not" ,
113+ arguments : [
114+ Selectors ::TypeSelector [ value : { name : { value : "div" } } ] ,
115+ Selectors ::CompoundSelector [
116+ Selectors ::TypeSelector [ value : { name : { value : "span" } } ] ,
117+ Selectors ::ClassSelector [ value : { value : "wide" } ] ,
118+ ] ,
119+ ] ,
120+ ] ,
121+ ] ,
122+ ] ,
123+ ]
124+ ]
125+ end
126+ end
127+
101128 it "parses a compound selector with pseudo-elements and pseudo-classes" do
102129 actual = parse_selectors ( "div.flex:hover::first-line:last-child:active::first-letter" )
103130
@@ -218,7 +245,6 @@ class SelectorsTest < Minitest::Spec
218245 ]
219246 end
220247 end
221-
222248 end
223249
224250 describe "formatting" do
@@ -237,6 +263,13 @@ class SelectorsTest < Minitest::Spec
237263 )
238264 end
239265
266+ it "with a pseudo-class function" do
267+ assert_selector_format (
268+ ".flex:not(div, span.wide, .hidden)" ,
269+ ".flex:not(div, span.wide, .hidden)" ,
270+ )
271+ end
272+
240273 it "with class selectors" do
241274 assert_selector_format (
242275 "div.flex.text-xl" ,
0 commit comments