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

Commit a8e63a8

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

File tree

1 file changed

+46
-3
lines changed

1 file changed

+46
-3
lines changed

test/selectors_test.rb

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,7 @@ class SelectorsTest < Minitest::Spec
5454
pseudo_elements: [
5555
[
5656
Selectors::PseudoElementSelector[
57-
Selectors::PseudoClassSelector[
58-
value: { value: "first-line" }
59-
]
57+
value: { value: { value: "first-line" } }
6058
],
6159
[]
6260
]
@@ -66,6 +64,51 @@ class SelectorsTest < Minitest::Spec
6664
end
6765
end
6866

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+
69112
it "parses a complex selector" do
70113
actual = parse_selectors("section>table")
71114

0 commit comments

Comments
 (0)