@@ -97,6 +97,52 @@ class SelectorsTest < Minitest::Spec
97
97
end
98
98
end
99
99
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
+
100
146
private
101
147
102
148
def parse_selectors ( selectors )
0 commit comments