@@ -52,6 +52,9 @@ t.test('query-selector-all', async t => {
52
52
name : 'abbrev' ,
53
53
version : '1.1.1' ,
54
54
license : 'ISC' ,
55
+ engines : {
56
+ node : '^16.0.0' ,
57
+ } ,
55
58
} ) ,
56
59
} ,
57
60
b : t . fixture ( 'symlink' , '../b' ) ,
@@ -62,6 +65,9 @@ t.test('query-selector-all', async t => {
62
65
dependencies : {
63
66
moo : '3.0.0' ,
64
67
} ,
68
+ engines : {
69
+ node : '>= 14.0.0' ,
70
+ } ,
65
71
arbitrary : {
66
72
foo : [
67
73
false ,
@@ -89,6 +95,10 @@ t.test('query-selector-all', async t => {
89
95
scripts : {
90
96
test : 'tap' ,
91
97
} ,
98
+ engines : {
99
+ // intentionally invalid range
100
+ node : 'nope' ,
101
+ } ,
92
102
} ) ,
93
103
} ,
94
104
foo : {
@@ -254,6 +264,18 @@ t.test('query-selector-all', async t => {
254
264
'should throw in invalid selector'
255
265
)
256
266
267
+ t . rejects (
268
+ q ( tree , ':semver(1.0.0, [version], eqqq)' ) ,
269
+ { code : 'EQUERYINVALIDOPERATOR' } ,
270
+ 'should throw on invalid semver operator'
271
+ )
272
+
273
+ t . rejects (
274
+ q ( tree , ':semver(nope)' ) ,
275
+ { code : 'EQUERYINVALIDSEMVER' } ,
276
+ 'should throw on invalid semver value'
277
+ )
278
+
257
279
// :scope pseudo
258
280
const [ nodeFoo ] = await q ( tree , '#foo' )
259
281
const scopeRes = await querySelectorAll ( nodeFoo , ':scope' )
@@ -559,6 +581,92 @@ t.test('query-selector-all', async t => {
559
581
] ] ,
560
582
[ ':semver(=1.4.0)' , [ 'bar@1.4.0' ] ] ,
561
583
[ ':semver(1.4.0 || 2.2.2)' , [ 'foo@2.2.2' , 'bar@1.4.0' ] ] ,
584
+ [ ':semver(^16.0.0, :attr(engines, [node]))' , [ 'abbrev@1.1.1' , 'bar@2.0.0' ] ] ,
585
+ [ ':semver(18.0.0, :attr(engines, [node]))' , [ 'bar@2.0.0' ] ] ,
586
+ [ ':semver(^16.0.0, :attr(engines, [node^=">="]))' , [ 'bar@2.0.0' ] ] ,
587
+ [ ':semver(3.0.0, [version], eq)' , [ 'moo@3.0.0' ] ] ,
588
+ [ ':semver(^3.0.0, [version], eq)' , [ ] ] ,
589
+ [ ':semver(1.0.0, [version], neq)' , [
590
+ '@npmcli/abbrev@2.0.0-beta.45' ,
591
+ 'abbrev@1.1.1' ,
592
+ 'bar@2.0.0' ,
593
+ 'dasher@2.0.0' ,
594
+ 'foo@2.2.2' ,
595
+ 'bar@1.4.0' ,
596
+ 'moo@3.0.0' ,
597
+ ] ] ,
598
+ [ ':semver(^1.0.0, [version], neq)' , [ ] ] ,
599
+ [ ':semver(2.0.0, [version], gt)' , [ 'foo@2.2.2' , 'moo@3.0.0' ] ] ,
600
+ [ ':semver(^2.0.0, [version], gt)' , [ ] ] ,
601
+ [ ':semver(2.0.0, [version], gte)' , [
602
+ 'bar@2.0.0' ,
603
+ 'dasher@2.0.0' ,
604
+ 'foo@2.2.2' ,
605
+ 'moo@3.0.0' ,
606
+ ] ] ,
607
+ [ ':semver(^2.0.0, [version], gte)' , [ ] ] ,
608
+ [ ':semver(1.1.1, [version], lt)' , [
609
+ 'query-selector-all-tests@1.0.0' ,
610
+ 'a@1.0.0' ,
611
+ 'b@1.0.0' ,
612
+ 'baz@1.0.0' ,
613
+ 'dash-separated-pkg@1.0.0' ,
614
+ 'ipsum@npm:sit@1.0.0' ,
615
+ 'lorem@1.0.0' ,
616
+ 'recur@1.0.0' ,
617
+ 'sive@1.0.0' ,
618
+ ] ] ,
619
+ [ ':semver(^1.1.1, [version], lt)' , [ ] ] ,
620
+ [ ':semver(1.1.1, [version], lte)' , [
621
+ 'query-selector-all-tests@1.0.0' ,
622
+ 'a@1.0.0' ,
623
+ 'b@1.0.0' ,
624
+ 'abbrev@1.1.1' ,
625
+ 'baz@1.0.0' ,
626
+ 'dash-separated-pkg@1.0.0' ,
627
+ 'ipsum@npm:sit@1.0.0' ,
628
+ 'lorem@1.0.0' ,
629
+ 'recur@1.0.0' ,
630
+ 'sive@1.0.0' ,
631
+ ] ] ,
632
+ [ ':semver(^1.1.1, [version], lte)' , [ ] ] ,
633
+ [ ':semver(^14.0.0, :attr(engines, [node]), intersects)' , [ 'bar@2.0.0' ] ] ,
634
+ [ ':semver(>=14, :attr(engines, [node]), subset)' , [ 'abbrev@1.1.1' , 'bar@2.0.0' ] ] ,
635
+ [ ':semver(^2.0.0, [version], gtr)' , [ 'moo@3.0.0' ] ] ,
636
+ [ ':semver(^2.0.0, :attr(engines, [node]), gtr)' , [ ] ] ,
637
+ [ ':semver(20.0.0, :attr(engines, [node]), gtr)' , [ 'abbrev@1.1.1' ] ] ,
638
+ [ ':semver(1.0.1, [version], gtr)' , [
639
+ 'query-selector-all-tests@1.0.0' ,
640
+ 'a@1.0.0' ,
641
+ 'b@1.0.0' ,
642
+ 'baz@1.0.0' ,
643
+ 'dash-separated-pkg@1.0.0' ,
644
+ 'ipsum@npm:sit@1.0.0' ,
645
+ 'lorem@1.0.0' ,
646
+ 'recur@1.0.0' ,
647
+ 'sive@1.0.0' ,
648
+ ] ] ,
649
+ [ ':semver(^1.1.1, [version], ltr)' , [
650
+ 'query-selector-all-tests@1.0.0' ,
651
+ 'a@1.0.0' ,
652
+ 'b@1.0.0' ,
653
+ 'baz@1.0.0' ,
654
+ 'dash-separated-pkg@1.0.0' ,
655
+ 'ipsum@npm:sit@1.0.0' ,
656
+ 'lorem@1.0.0' ,
657
+ 'recur@1.0.0' ,
658
+ 'sive@1.0.0' ,
659
+ ] ] ,
660
+ [ ':semver(^1.1.1, :attr(engines, [node]), ltr)' , [ ] ] ,
661
+ [ ':semver(0.0.1, :attr(engines, [node]), ltr)' , [ 'abbrev@1.1.1' , 'bar@2.0.0' ] ] ,
662
+ [ ':semver(1.1.1, [version], ltr)' , [
663
+ '@npmcli/abbrev@2.0.0-beta.45' ,
664
+ 'bar@2.0.0' ,
665
+ 'dasher@2.0.0' ,
666
+ 'foo@2.2.2' ,
667
+ 'bar@1.4.0' ,
668
+ 'moo@3.0.0' ,
669
+ ] ] ,
562
670
563
671
// attr pseudo
564
672
[ ':attr([name=dasher])' , [ 'dasher@2.0.0' ] ] ,
0 commit comments