@@ -54,9 +54,7 @@ class SelectorsTest < Minitest::Spec
54
54
pseudo_elements : [
55
55
[
56
56
Selectors ::PseudoElementSelector [
57
- Selectors ::PseudoClassSelector [
58
- value : { value : "first-line" }
59
- ]
57
+ value : { value : { value : "first-line" } }
60
58
] ,
61
59
[ ]
62
60
]
@@ -66,6 +64,51 @@ class SelectorsTest < Minitest::Spec
66
64
end
67
65
end
68
66
67
+ it "parses a compound selector with a pseudo-class" do
68
+ actual = parse_selectors ( "div.flex:hover" )
69
+
70
+ assert_pattern do
71
+ actual => [
72
+ Selectors ::CompoundSelector [
73
+ type : { value : { name : { value : "div" } } } ,
74
+ subclasses : [
75
+ Selectors ::ClassSelector [ value : { value : "flex" } ] ,
76
+ Selectors ::PseudoClassSelector [ value : { value : "hover" } ] ,
77
+ ] ,
78
+ ]
79
+ ]
80
+ end
81
+ end
82
+
83
+ it "parses a compound selector with pseudo-elements and pseudo-classes" do
84
+ actual = parse_selectors ( "div.flex:hover::first-line:last-child:active::first-letter" )
85
+
86
+ assert_pattern do
87
+ actual => [
88
+ Selectors ::CompoundSelector [
89
+ type : { value : { name : { value : "div" } } } ,
90
+ subclasses : [
91
+ Selectors ::ClassSelector [ value : { value : "flex" } ] ,
92
+ Selectors ::PseudoClassSelector [ value : { value : "hover" } ] ,
93
+ ] ,
94
+ pseudo_elements : [
95
+ [
96
+ Selectors ::PseudoElementSelector [ value : { value : { value : "first-line" } } ] ,
97
+ [
98
+ Selectors ::PseudoClassSelector [ value : { value : "last-child" } ] ,
99
+ Selectors ::PseudoClassSelector [ value : { value : "active" } ] ,
100
+ ] ,
101
+ ] ,
102
+ [
103
+ Selectors ::PseudoElementSelector [ value : { value : { value : "first-letter" } } ] ,
104
+ [ ] ,
105
+ ]
106
+ ]
107
+ ]
108
+ ]
109
+ end
110
+ end
111
+
69
112
it "parses a complex selector" do
70
113
actual = parse_selectors ( "section>table" )
71
114
0 commit comments