Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit c6848e2

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

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

test/selectors_test.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,52 @@ class SelectorsTest < Minitest::Spec
6666
end
6767
end
6868

69+
it "parses a compound selector with a pseudo-class" do
70+
actual = parse_selectors("div.flex:hover")
71+
72+
assert_pattern do
73+
actual => [
74+
Selectors::CompoundSelector[
75+
type: { value: { name: { value: "div" } } },
76+
subclasses: [
77+
Selectors::ClassSelector[value: { value: "flex" }],
78+
Selectors::PseudoClassSelector[value: { value: "hover" }],
79+
],
80+
]
81+
]
82+
end
83+
end
84+
85+
it "parses a compound selector with pseudo-elements and pseudo-classes" do
86+
actual = parse_selectors("div.flex:hover::first-line:last-child::first-letter")
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+
pseudo_elements: [
97+
[
98+
Selectors::PseudoElementSelector[
99+
Selectors::PseudoClassSelector[value: { value: "first-line" }],
100+
],
101+
[Selectors::PseudoClassSelector[value: { value: "last-child" }]],
102+
],
103+
[
104+
Selectors::PseudoElementSelector[
105+
Selectors::PseudoClassSelector[value: { value: "first-letter" }],
106+
],
107+
[],
108+
]
109+
]
110+
]
111+
]
112+
end
113+
end
114+
69115
it "parses a complex selector" do
70116
actual = parse_selectors("section>table")
71117

0 commit comments

Comments
 (0)