@@ -97,6 +97,52 @@ class SelectorsTest < Minitest::Spec
9797 end
9898 end
9999
100+ it "parses a complex selector with whitespace" do
101+ actual = parse_selectors ( "section > table" )
102+
103+ assert_pattern do
104+ actual => [
105+ Selectors ::ComplexSelector [
106+ left : Selectors ::TypeSelector [ value : { name : { value : "section" } } ] ,
107+ combinator : { value : { value : ">" } } ,
108+ right : Selectors ::TypeSelector [ value : { name : { value : "table" } } ] ,
109+ ]
110+ ]
111+ end
112+ end
113+
114+ it "parses a complex selector with implicit descendant combinator" do
115+ actual = parse_selectors ( "section table" )
116+
117+ assert_pattern do
118+ actual => [
119+ Selectors ::ComplexSelector [
120+ left : Selectors ::TypeSelector [ value : { name : { value : "section" } } ] ,
121+ combinator : nil ,
122+ right : Selectors ::TypeSelector [ value : { name : { value : "table" } } ] ,
123+ ]
124+ ]
125+ end
126+ end
127+
128+ it "parses a complex complex selector" do
129+ actual = parse_selectors ( "section > table tr" )
130+
131+ assert_pattern do
132+ actual => [
133+ Selectors ::ComplexSelector [
134+ left : Selectors ::TypeSelector [ value : { name : { value : "section" } } ] ,
135+ combinator : { value : { value : ">" } } ,
136+ right : Selectors ::ComplexSelector [
137+ left : Selectors ::TypeSelector [ value : { name : { value : "table" } } ] ,
138+ combinator : nil ,
139+ right : Selectors ::TypeSelector [ value : { name : { value : "tr" } } ]
140+ ]
141+ ]
142+ ]
143+ end
144+ end
145+
100146 private
101147
102148 def parse_selectors ( selectors )
0 commit comments