Skip to content

Commit e2096b3

Browse files
committed
test: write test describing the current pseudo-element AST structure
1 parent f83c4cc commit e2096b3

File tree

1 file changed

+46
-3
lines changed

1 file changed

+46
-3
lines changed

test/selectors_test.rb

+46-3
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,7 @@ class SelectorsTest < Minitest::Spec
7272
pseudo_elements: [
7373
[
7474
Selectors::PseudoElementSelector[
75-
Selectors::PseudoClassSelector[
76-
value: { value: "first-line" }
77-
]
75+
value: { value: { value: "first-line" } }
7876
],
7977
[]
8078
]
@@ -84,6 +82,51 @@ class SelectorsTest < Minitest::Spec
8482
end
8583
end
8684

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+
87130
it "parses a complex selector" do
88131
actual = parse_selectors("section>table")
89132

0 commit comments

Comments
 (0)