1
- import test from 'tape'
1
+ import assert from 'node:assert/strict'
2
+ import test from 'node:test'
2
3
import { h , s } from 'hastscript'
3
4
import { fromSelector } from './index.js'
4
5
5
- test ( 'fromSelector()' , ( t ) => {
6
- t . throws (
6
+ test ( 'fromSelector()' , ( ) => {
7
+ assert . throws (
7
8
( ) => {
8
9
fromSelector ( '@supports (transform-origin: 5% 5%) {}' )
9
10
} ,
10
11
/ E r r o r : R u l e e x p e c t e d b u t " @ " f o u n d / ,
11
12
'should throw w/ invalid selector'
12
13
)
13
14
14
- t . throws (
15
+ assert . throws (
15
16
( ) => {
16
17
fromSelector ( 'a, b' )
17
18
} ,
18
19
/ E r r o r : C a n n o t h a n d l e s e l e c t o r l i s t / ,
19
20
'should throw w/ multiple selector'
20
21
)
21
22
22
- t . throws (
23
+ assert . throws (
23
24
( ) => {
24
25
fromSelector ( 'a + b' )
25
26
} ,
26
27
/ E r r o r : C a n n o t h a n d l e s i b l i n g c o m b i n a t o r ` \+ ` a t r o o t / ,
27
28
'should throw w/ next-sibling combinator at root'
28
29
)
29
30
30
- t . throws (
31
+ assert . throws (
31
32
( ) => {
32
33
fromSelector ( 'a ~ b' )
33
34
} ,
34
35
/ E r r o r : C a n n o t h a n d l e s i b l i n g c o m b i n a t o r ` ~ ` a t r o o t / ,
35
36
'should throw w/ subsequent-sibling combinator at root'
36
37
)
37
38
38
- t . throws (
39
+ assert . throws (
39
40
( ) => {
40
41
fromSelector ( '[foo%=bar]' )
41
42
} ,
42
43
/ E r r o r : E x p e c t e d " = " b u t " % " f o u n d ./ ,
43
44
'should throw w/ attribute modifiers'
44
45
)
45
46
46
- t . throws (
47
+ assert . throws (
47
48
( ) => {
48
49
fromSelector ( '[foo~=bar]' )
49
50
} ,
50
51
/ E r r o r : C a n n o t h a n d l e a t t r i b u t e e q u a l i t y m o d i f i e r ` ~ = ` / ,
51
52
'should throw w/ attribute modifiers'
52
53
)
53
54
54
- t . throws (
55
+ assert . throws (
55
56
( ) => {
56
57
fromSelector ( ':active' )
57
58
} ,
58
59
/ E r r o r : C a n n o t h a n d l e p s e u d o - s e l e c t o r ` a c t i v e ` / ,
59
60
'should throw on pseudo classes'
60
61
)
61
62
62
- t . throws (
63
+ assert . throws (
63
64
( ) => {
64
65
fromSelector ( ':nth-foo(2n+1)' )
65
66
} ,
66
67
/ E r r o r : C a n n o t h a n d l e p s e u d o - s e l e c t o r ` n t h - f o o ` / ,
67
68
'should throw on pseudo class “functions”'
68
69
)
69
70
70
- t . throws (
71
+ assert . throws (
71
72
( ) => {
72
73
fromSelector ( '::before' )
73
74
} ,
74
75
/ E r r o r : C a n n o t h a n d l e p s e u d o - e l e m e n t o r e m p t y p s e u d o - c l a s s / ,
75
76
'should throw on invalid pseudo elements'
76
77
)
77
78
78
- t . deepEqual ( fromSelector ( ) , h ( '' ) , 'should support no selector' )
79
- t . deepEqual ( fromSelector ( '' ) , h ( '' ) , 'should support the empty string' )
80
- t . deepEqual ( fromSelector ( ' ' ) , h ( '' ) , 'should support whitespace only' )
81
- t . deepEqual ( fromSelector ( '*' ) , h ( '' ) , 'should support the universal selector' )
79
+ assert . deepEqual ( fromSelector ( ) , h ( '' ) , 'should support no selector' )
80
+ assert . deepEqual ( fromSelector ( '' ) , h ( '' ) , 'should support the empty string' )
81
+ assert . deepEqual ( fromSelector ( ' ' ) , h ( '' ) , 'should support whitespace only' )
82
+ assert . deepEqual (
83
+ fromSelector ( '*' ) ,
84
+ h ( '' ) ,
85
+ 'should support the universal selector'
86
+ )
82
87
83
- t . deepEqual (
88
+ assert . deepEqual (
84
89
fromSelector ( 'p i s' ) ,
85
90
h ( 'p' , h ( 'i' , h ( 's' ) ) ) ,
86
91
'should support the descendant combinator'
87
92
)
88
93
89
- t . deepEqual (
94
+ assert . deepEqual (
90
95
fromSelector ( 'p > i > s' ) ,
91
96
h ( 'p' , h ( 'i' , h ( 's' ) ) ) ,
92
97
'should support the child combinator'
93
98
)
94
99
95
- t . deepEqual (
100
+ assert . deepEqual (
96
101
fromSelector ( 'p i + s' ) ,
97
102
h ( 'p' , [ h ( 'i' ) , h ( 's' ) ] ) ,
98
103
'should support the next-sibling combinator'
99
104
)
100
105
101
- t . deepEqual (
106
+ assert . deepEqual (
102
107
fromSelector ( 'p i ~ s' ) ,
103
108
h ( 'p' , [ h ( 'i' ) , h ( 's' ) ] ) ,
104
109
'should support the subsequent-sibling combinator'
105
110
)
106
111
107
- t . deepEqual ( fromSelector ( 'a' ) , h ( 'a' ) , 'should support a tag name' )
108
- t . deepEqual ( fromSelector ( '.a' ) , h ( '.a' ) , 'should support a class' )
109
- t . deepEqual ( fromSelector ( 'a.b' ) , h ( 'a.b' ) , 'should support a tag and a class' )
110
- t . deepEqual ( fromSelector ( '#b' ) , h ( '#b' ) , 'should support an id' )
111
- t . deepEqual ( fromSelector ( 'a#b' ) , h ( 'a#b' ) , 'should support a tag and an id' )
112
- t . deepEqual (
112
+ assert . deepEqual ( fromSelector ( 'a' ) , h ( 'a' ) , 'should support a tag name' )
113
+ assert . deepEqual ( fromSelector ( '.a' ) , h ( '.a' ) , 'should support a class' )
114
+ assert . deepEqual (
115
+ fromSelector ( 'a.b' ) ,
116
+ h ( 'a.b' ) ,
117
+ 'should support a tag and a class'
118
+ )
119
+ assert . deepEqual ( fromSelector ( '#b' ) , h ( '#b' ) , 'should support an id' )
120
+ assert . deepEqual (
121
+ fromSelector ( 'a#b' ) ,
122
+ h ( 'a#b' ) ,
123
+ 'should support a tag and an id'
124
+ )
125
+ assert . deepEqual (
113
126
fromSelector ( 'a#b.c.d' ) ,
114
127
h ( 'a#b.c.d' ) ,
115
128
'should support all together'
116
129
)
117
- t . deepEqual ( fromSelector ( 'a#b#c' ) , h ( 'a#c' ) , 'should use the last id' )
118
- t . deepEqual ( fromSelector ( 'A' ) . tagName , 'a' , 'should normalize casing' )
130
+ assert . deepEqual ( fromSelector ( 'a#b#c' ) , h ( 'a#c' ) , 'should use the last id' )
131
+ assert . deepEqual ( fromSelector ( 'A' ) . tagName , 'a' , 'should normalize casing' )
119
132
120
- t . deepEqual (
133
+ assert . deepEqual (
121
134
fromSelector ( '[a]' ) ,
122
135
h ( '' , { a : true } ) ,
123
136
'should support attributes (#1)'
124
137
)
125
- t . deepEqual (
138
+ assert . deepEqual (
126
139
fromSelector ( '[a=b]' ) ,
127
140
h ( '' , { a : 'b' } ) ,
128
141
'should support attributes (#2)'
129
142
)
130
143
131
- t . deepEqual (
144
+ assert . deepEqual (
132
145
fromSelector ( '.a.b[class=c]' ) ,
133
146
h ( '.a.b.c' ) ,
134
147
'should support class and class attributes'
135
148
)
136
149
137
- t . deepEqual ( fromSelector ( 'altGlyph' ) . tagName , 'altglyph' , 'space (#1)' )
150
+ assert . deepEqual ( fromSelector ( 'altGlyph' ) . tagName , 'altglyph' , 'space (#1)' )
138
151
139
- t . deepEqual ( fromSelector ( 'altGlyph' , 'svg' ) . tagName , 'altGlyph' , 'space (#2)' )
152
+ assert . deepEqual (
153
+ fromSelector ( 'altGlyph' , 'svg' ) . tagName ,
154
+ 'altGlyph' ,
155
+ 'space (#2)'
156
+ )
140
157
141
- t . deepEqual (
158
+ assert . deepEqual (
142
159
fromSelector ( 'altGlyph' , { space : 'svg' } ) . tagName ,
143
160
'altGlyph' ,
144
161
'space (#3)'
145
162
)
146
163
147
- t . deepEqual (
164
+ assert . deepEqual (
148
165
// @ts -expect-error: fine.
149
166
fromSelector ( 'svg altGlyph' ) . children [ 0 ] . tagName ,
150
167
'altGlyph' ,
151
168
'space (#4)'
152
169
)
153
170
154
- t . deepEqual (
171
+ assert . deepEqual (
155
172
// @ts -expect-error: fine.
156
173
fromSelector ( 'div svg + altGlyph' ) . children [ 1 ] . tagName ,
157
174
'altglyph' ,
158
175
'space (#5)'
159
176
)
160
177
161
- t . deepEqual (
178
+ assert . deepEqual (
162
179
fromSelector (
163
180
'p svg[viewbox=0 0 10 10] circle[cx=10][cy=10][r=10] altGlyph'
164
181
) ,
@@ -169,6 +186,4 @@ test('fromSelector()', (t) => {
169
186
] ) ,
170
187
'space (#6)'
171
188
)
172
-
173
- t . end ( )
174
189
} )
0 commit comments