@@ -72,9 +72,7 @@ class SelectorsTest < Minitest::Spec
72
72
pseudo_elements : [
73
73
[
74
74
Selectors ::PseudoElementSelector [
75
- Selectors ::PseudoClassSelector [
76
- value : { value : "first-line" }
77
- ]
75
+ value : { value : { value : "first-line" } }
78
76
] ,
79
77
[ ]
80
78
]
@@ -84,6 +82,51 @@ class SelectorsTest < Minitest::Spec
84
82
end
85
83
end
86
84
85
+ it "parses a compound selector with a pseudo-class" do
86
+ actual = parse_selectors ( "div.flex:hover" )
87
+
88
+ assert_pattern do
89
+ actual => [
90
+ Selectors ::CompoundSelector [
91
+ type : { value : { name : { value : "div" } } } ,
92
+ subclasses : [
93
+ Selectors ::ClassSelector [ value : { value : "flex" } ] ,
94
+ Selectors ::PseudoClassSelector [ value : { value : "hover" } ] ,
95
+ ] ,
96
+ ]
97
+ ]
98
+ end
99
+ end
100
+
101
+ it "parses a compound selector with pseudo-elements and pseudo-classes" do
102
+ actual = parse_selectors ( "div.flex:hover::first-line:last-child:active::first-letter" )
103
+
104
+ assert_pattern do
105
+ actual => [
106
+ Selectors ::CompoundSelector [
107
+ type : { value : { name : { value : "div" } } } ,
108
+ subclasses : [
109
+ Selectors ::ClassSelector [ value : { value : "flex" } ] ,
110
+ Selectors ::PseudoClassSelector [ value : { value : "hover" } ] ,
111
+ ] ,
112
+ pseudo_elements : [
113
+ [
114
+ Selectors ::PseudoElementSelector [ value : { value : { value : "first-line" } } ] ,
115
+ [
116
+ Selectors ::PseudoClassSelector [ value : { value : "last-child" } ] ,
117
+ Selectors ::PseudoClassSelector [ value : { value : "active" } ] ,
118
+ ] ,
119
+ ] ,
120
+ [
121
+ Selectors ::PseudoElementSelector [ value : { value : { value : "first-letter" } } ] ,
122
+ [ ] ,
123
+ ]
124
+ ]
125
+ ]
126
+ ]
127
+ end
128
+ end
129
+
87
130
it "parses a complex selector" do
88
131
actual = parse_selectors ( "section>table" )
89
132
0 commit comments