@@ -3,98 +3,116 @@ import test from 'node:test'
33import { u } from 'unist-builder'
44import { selectAll } from '../index.js'
55
6- test ( 'all together now' , ( ) => {
7- assert . deepEqual (
8- selectAll (
9- 'a > b[d]:nth-of-type(odd)' ,
10- u ( 'root' , [
11- u ( 'a' , [
12- u ( 'b' , { d : 1 } , 'Alpha' ) ,
13- u ( 'c' , 'Bravo' ) ,
14- u ( 'b' , 'Charlie' ) ,
15- u ( 'c' , 'Delta' ) ,
16- u ( 'b' , 'Echo' ) ,
17- u ( 'c' , 'Foxtrot' )
6+ test ( 'all together now' , async function ( t ) {
7+ await t . test ( 'should expose the public api' , async function ( ) {
8+ assert . deepEqual ( Object . keys ( await import ( '../index.js' ) ) . sort ( ) , [
9+ 'matches' ,
10+ 'select' ,
11+ 'selectAll'
12+ ] )
13+ } )
14+
15+ await t . test ( '#1' , async function ( ) {
16+ assert . deepEqual (
17+ selectAll (
18+ 'a > b[d]:nth-of-type(odd)' ,
19+ u ( 'root' , [
20+ u ( 'a' , [
21+ u ( 'b' , { d : 1 } , 'Alpha' ) ,
22+ u ( 'c' , 'Bravo' ) ,
23+ u ( 'b' , 'Charlie' ) ,
24+ u ( 'c' , 'Delta' ) ,
25+ u ( 'b' , 'Echo' ) ,
26+ u ( 'c' , 'Foxtrot' )
27+ ] )
1828 ] )
19- ] )
20- ) ,
21- [ u ( 'b' , { d : 1 } , 'Alpha' ) ]
22- )
29+ ) ,
30+ [ u ( 'b' , { d : 1 } , 'Alpha' ) ]
31+ )
32+ } )
2333
24- assert . deepEqual (
25- selectAll (
26- '[d] ~ c:nth-of-type(even)' ,
27- u ( 'root' , [
28- u ( 'a' , [
29- u ( 'b' , 'Alpha' ) ,
30- u ( 'c' , 'Bravo' ) ,
31- u ( 'b' , { d : 1 } , 'Charlie' ) ,
32- u ( 'c' , 'Delta' ) ,
33- u ( 'b' , 'Echo' ) ,
34- u ( 'c' , 'Foxtrot' ) ,
35- u ( 'b' , 'Golf' ) ,
36- u ( 'c' , 'Hotel' )
34+ await t . test ( '#2' , async function ( ) {
35+ assert . deepEqual (
36+ selectAll (
37+ '[d] ~ c:nth-of-type(even)' ,
38+ u ( 'root' , [
39+ u ( 'a' , [
40+ u ( 'b' , 'Alpha' ) ,
41+ u ( 'c' , 'Bravo' ) ,
42+ u ( 'b' , { d : 1 } , 'Charlie' ) ,
43+ u ( 'c' , 'Delta' ) ,
44+ u ( 'b' , 'Echo' ) ,
45+ u ( 'c' , 'Foxtrot' ) ,
46+ u ( 'b' , 'Golf' ) ,
47+ u ( 'c' , 'Hotel' )
48+ ] )
3749 ] )
38- ] )
39- ) ,
40- [ u ( 'c' , 'Delta' ) , u ( 'c' , 'Hotel' ) ]
41- )
50+ ) ,
51+ [ u ( 'c' , 'Delta' ) , u ( 'c' , 'Hotel' ) ]
52+ )
53+ } )
4254
43- assert . deepEqual (
44- selectAll (
45- '[d] + c:nth-of-type(even)' ,
46- u ( 'root' , [
47- u ( 'a' , [
48- u ( 'b' , 'Alpha' ) ,
49- u ( 'c' , 'Bravo' ) ,
50- u ( 'b' , { d : 1 } , 'Charlie' ) ,
51- u ( 'c' , 'Delta' ) ,
52- u ( 'b' , 'Echo' ) ,
53- u ( 'c' , 'Foxtrot' ) ,
54- u ( 'b' , 'Golf' ) ,
55- u ( 'c' , 'Hotel' )
55+ await t . test ( '#3' , async function ( ) {
56+ assert . deepEqual (
57+ selectAll (
58+ '[d] + c:nth-of-type(even)' ,
59+ u ( 'root' , [
60+ u ( 'a' , [
61+ u ( 'b' , 'Alpha' ) ,
62+ u ( 'c' , 'Bravo' ) ,
63+ u ( 'b' , { d : 1 } , 'Charlie' ) ,
64+ u ( 'c' , 'Delta' ) ,
65+ u ( 'b' , 'Echo' ) ,
66+ u ( 'c' , 'Foxtrot' ) ,
67+ u ( 'b' , 'Golf' ) ,
68+ u ( 'c' , 'Hotel' )
69+ ] )
5670 ] )
57- ] )
58- ) ,
59- [ u ( 'c' , 'Delta' ) ]
60- )
71+ ) ,
72+ [ u ( 'c' , 'Delta' ) ]
73+ )
74+ } )
6175
62- assert . deepEqual (
63- selectAll (
64- '[d], :nth-of-type(even), [e]' ,
65- u ( 'root' , [
66- u ( 'a' , [
67- u ( 'b' , { e : 3 } , 'Alpha' ) ,
68- u ( 'c' , 'Bravo' ) ,
69- u ( 'b' , { d : 1 } , 'Charlie' ) ,
70- u ( 'c' , 'Delta' ) ,
71- u ( 'b' , 'Echo' ) ,
72- u ( 'c' , { d : 2 , e : 4 } , 'Foxtrot' ) ,
73- u ( 'b' , 'Golf' ) ,
74- u ( 'c' , 'Hotel' )
76+ await t . test ( '#4' , async function ( ) {
77+ assert . deepEqual (
78+ selectAll (
79+ '[d], :nth-of-type(even), [e]' ,
80+ u ( 'root' , [
81+ u ( 'a' , [
82+ u ( 'b' , { e : 3 } , 'Alpha' ) ,
83+ u ( 'c' , 'Bravo' ) ,
84+ u ( 'b' , { d : 1 } , 'Charlie' ) ,
85+ u ( 'c' , 'Delta' ) ,
86+ u ( 'b' , 'Echo' ) ,
87+ u ( 'c' , { d : 2 , e : 4 } , 'Foxtrot' ) ,
88+ u ( 'b' , 'Golf' ) ,
89+ u ( 'c' , 'Hotel' )
90+ ] )
7591 ] )
76- ] )
77- ) ,
78- [
79- u ( 'b' , { e : 3 } , 'Alpha ' ) ,
80- u ( 'b ' , { d : 1 } , 'Charlie ') ,
81- u ( 'c' , 'Delta ') ,
82- u ( 'c ' , { d : 2 , e : 4 } , 'Foxtrot ') ,
83- u ( 'b ' , 'Golf' ) ,
84- u ( 'c' , 'Hotel' )
85- ]
86- )
92+ ) ,
93+ [
94+ u ( 'b' , { e : 3 } , 'Alpha' ) ,
95+ u ( 'b' , { d : 1 } , 'Charlie ' ) ,
96+ u ( 'c ' , 'Delta ') ,
97+ u ( 'c' , { d : 2 , e : 4 } , 'Foxtrot ') ,
98+ u ( 'b ' , 'Golf ') ,
99+ u ( 'c ' , 'Hotel' )
100+ ]
101+ )
102+ } )
87103
88- assert . deepEqual (
89- selectAll (
90- 'a:not([b])' ,
91- u ( 'root' , [
92- u ( 'a' , { id : 'w' , b : 'a' } ) ,
93- u ( 'a' , { id : 'x' } ) ,
94- u ( 'a' , { id : 'y' , b : 'a' } ) ,
95- u ( 'a' , { id : 'z' } )
96- ] )
97- ) ,
98- [ u ( 'a' , { id : 'x' } ) , u ( 'a' , { id : 'z' } ) ]
99- )
104+ await t . test ( '#5' , async function ( ) {
105+ assert . deepEqual (
106+ selectAll (
107+ 'a:not([b])' ,
108+ u ( 'root' , [
109+ u ( 'a' , { id : 'w' , b : 'a' } ) ,
110+ u ( 'a' , { id : 'x' } ) ,
111+ u ( 'a' , { id : 'y' , b : 'a' } ) ,
112+ u ( 'a' , { id : 'z' } )
113+ ] )
114+ ) ,
115+ [ u ( 'a' , { id : 'x' } ) , u ( 'a' , { id : 'z' } ) ]
116+ )
117+ } )
100118} )
0 commit comments