@@ -28,6 +28,8 @@ t.test('query-selector-all', async t => {
2828 │ └── bar@2.0.0 (production dep of b, deduped)
2929 ├─┬ bar@2.0.0 (production dep of query-selector-all-tests)
3030 │ └── moo@3.0.0 (production dep of bar)
31+ |-┬ c@1.0.0 -> ./c (workspace)
32+ │ └── b@1.0.0 (production dep of c, deduped)
3133 ├─┬ foo@2.2.2 (dev dep of query-selector-all-tests)
3234 │ ├─┬ bar@1.4.0 (production dep of foo, deduped)
3335 │ │ └── dasher@2.0.0 (overridden peer dep of bar)
@@ -65,6 +67,9 @@ t.test('query-selector-all', async t => {
6567 '1.0.0' : undefined ,
6668 '1.0.1' : yesterday ,
6769 } ,
70+ c : {
71+ '1.0.0' : today ,
72+ } ,
6873 'dash-separated-pkg' : {
6974 '1.0.0' : dayBeforeYesterday ,
7075 '2.0.0' : yesterday ,
@@ -173,6 +178,7 @@ t.test('query-selector-all', async t => {
173178 } ,
174179 } ) ,
175180 } ,
181+ c : t . fixture ( 'symlink' , '../c' ) ,
176182 foo : {
177183 node_modules : {
178184 bar : {
@@ -275,10 +281,19 @@ t.test('query-selector-all', async t => {
275281 bar : '^2.0.0' ,
276282 } ,
277283 } ) } ,
284+ c : {
285+ 'package.json' : JSON . stringify ( {
286+ name : 'c' ,
287+ version : '1.0.0' ,
288+ dependencies : {
289+ b : '^1.0.0' ,
290+ } ,
291+ } ) ,
292+ } ,
278293 'package.json' : JSON . stringify ( {
279294 name : 'query-selector-all-tests' ,
280295 version : '1.0.0' ,
281- workspaces : [ 'a' , 'b' ] ,
296+ workspaces : [ 'a' , 'b' , 'c' ] ,
282297 dependencies : {
283298 a : '^1.0.0' ,
284299 abbrev : '^1.1.1' ,
@@ -387,6 +402,7 @@ t.test('query-selector-all', async t => {
387402 'query-selector-all-tests@1.0.0' ,
388403 'a@1.0.0' ,
389404 'b@1.0.0' ,
405+ 'c@1.0.0' ,
390406 '@npmcli/abbrev@2.0.0-beta.45' ,
391407 'abbrev@1.1.1' ,
392408 'bar@2.0.0' ,
@@ -404,6 +420,7 @@ t.test('query-selector-all', async t => {
404420 [ '* > *' , [
405421 'a@1.0.0' ,
406422 'b@1.0.0' ,
423+ 'c@1.0.0' ,
407424 'abbrev@1.1.1' ,
408425 'bar@2.0.0' ,
409426 'baz@1.0.0' ,
@@ -425,18 +442,19 @@ t.test('query-selector-all', async t => {
425442 [ ':root > *' , [
426443 'a@1.0.0' ,
427444 'b@1.0.0' ,
445+ 'c@1.0.0' ,
428446 'abbrev@1.1.1' ,
429447 'bar@2.0.0' ,
430448 'foo@2.2.2' ,
431449 'ipsum@npm:sit@1.0.0' ,
432450 'moo@3.0.0' ,
433451 'recur@1.0.0' ,
434452 ] ] ,
435- [ ':root > .workspace' , [ 'a@1.0.0' , 'b@1.0.0' ] ] ,
436- [ ':root > *.workspace' , [ 'a@1.0.0' , 'b@1.0.0' ] ] ,
453+ [ ':root > .workspace' , [ 'a@1.0.0' , 'b@1.0.0' , 'c@1.0.0' ] ] ,
454+ [ ':root > *.workspace' , [ 'a@1.0.0' , 'b@1.0.0' , 'c@1.0.0' ] ] ,
437455 [ ':root > .workspace[name=a]' , [ 'a@1.0.0' ] ] ,
438456 [ ':root > [name=bar]' , [ 'bar@2.0.0' ] ] ,
439- [ ':root > .workspace[version=1.0.0]' , [ 'a@1.0.0' , 'b@1.0.0' ] ] ,
457+ [ ':root > .workspace[version=1.0.0]' , [ 'a@1.0.0' , 'b@1.0.0' , 'c@1.0.0' ] ] ,
440458 [ ':root > .workspace[name=a][version=1.0.0]' , [ 'a@1.0.0' ] ] ,
441459 [ ':root > :root' , [ ] ] ,
442460 [ '* > :root' , [ ] ] ,
@@ -452,6 +470,7 @@ t.test('query-selector-all', async t => {
452470 'a@1.0.0' ,
453471 'abbrev@1.1.1' ,
454472 'b@1.0.0' ,
473+ 'c@1.0.0' ,
455474 'dash-separated-pkg@1.0.0' ,
456475 'dasher@2.0.0' ,
457476 'lorem@1.0.0' ,
@@ -461,12 +480,12 @@ t.test('query-selector-all', async t => {
461480 'a@1.0.0' ,
462481 'abbrev@1.1.1' ,
463482 'b@1.0.0' ,
483+ 'c@1.0.0' ,
464484 'moo@3.0.0' ,
465485 ] ] ,
466486 [ ':extraneous' , [ '@npmcli/abbrev@2.0.0-beta.45' ] ] ,
467487 [ ':invalid' , [ 'lorem@1.0.0' ] ] ,
468- [ ':link' , [ 'a@1.0.0' , 'b@1.0.0' ] ] ,
469- [ ':link' , [ 'a@1.0.0' , 'b@1.0.0' ] ] ,
488+ [ ':link' , [ 'a@1.0.0' , 'b@1.0.0' , 'c@1.0.0' ] ] ,
470489 [ ':deduped' , [
471490 'bar@2.0.0' ,
472491 'moo@3.0.0' ,
@@ -481,6 +500,7 @@ t.test('query-selector-all', async t => {
481500 'query-selector-all-tests@1.0.0' ,
482501 'a@1.0.0' ,
483502 'b@1.0.0' ,
503+ 'c@1.0.0' ,
484504 '@npmcli/abbrev@2.0.0-beta.45' ,
485505 'abbrev@1.1.1' ,
486506 'bar@2.0.0' ,
@@ -494,34 +514,36 @@ t.test('query-selector-all', async t => {
494514 'recur@1.0.0' ,
495515 'sive@1.0.0' ,
496516 ] ] ,
497- [ ':root > .workspace:not(#b)' , [ 'a@1.0.0' ] ] ,
498- [ ':root > .workspace > *:not(#bar)' , [ 'a@1.0.0' , 'baz@1.0.0' ] ] ,
517+ [ ':root > .workspace:not(#b)' , [ 'a@1.0.0' , 'c@1.0.0' ] ] ,
518+ [ ':root > .workspace > *:not(#bar)' , [ 'a@1.0.0' , 'b@1.0.0' , ' baz@1.0.0'] ] ,
499519 [ '.bundled ~ :not(.workspace)' , [
500520 'bar@2.0.0' ,
501521 'foo@2.2.2' ,
502522 'ipsum@npm:sit@1.0.0' ,
503523 'moo@3.0.0' ,
504524 'recur@1.0.0' ,
505525 ] ] ,
506- [ '*:root > *:empty:not(*[name^=a], #b)' , [ 'moo@3.0.0' ] ] ,
526+ [ '*:root > *:empty:not(*[name^=a], #b, #c )' , [ 'moo@3.0.0' ] ] ,
507527 [ ':not(:not(:link))' , [
508528 'a@1.0.0' ,
509529 'b@1.0.0' ,
530+ 'c@1.0.0' ,
510531 ] ] ,
511532
512533 // has pseudo
513534 [ ':root > *:has(* > #bar:semver(1.4.0))' , [ 'foo@2.2.2' ] ] ,
514535 [ '*:has(* > #bar:semver(1.4.0))' , [ 'foo@2.2.2' ] ] ,
515536 [ '*:has(> #bar:semver(1.4.0))' , [ 'foo@2.2.2' ] ] ,
516537 [ '.workspace:has(> * > #lorem)' , [ 'a@1.0.0' ] ] ,
517- [ '.workspace:has(* #lorem, ~ #b)' , [ 'a@1.0.0' , 'b@1.0.0' ] ] ,
538+ [ '.workspace:has(* #lorem, ~ #b)' , [ 'a@1.0.0' , 'b@1.0.0' , 'c@1.0.0' ] ] ,
518539
519540 // is pseudo
520541 [ ':is(#a, #b) > *' , [ 'a@1.0.0' , 'bar@2.0.0' , 'baz@1.0.0' ] ] ,
521542 // TODO: ipsum is not empty but its child is missing so it doesn't return a
522543 // result here
523544 [ ':root > *:is(.prod:not(:empty), .dev > [name=bar]) > *' , [
524545 'a@1.0.0' ,
546+ 'b@1.0.0' ,
525547 'bar@2.0.0' ,
526548 'baz@1.0.0' ,
527549 'dasher@2.0.0' ,
@@ -538,6 +560,7 @@ t.test('query-selector-all', async t => {
538560 'query-selector-all-tests@1.0.0' ,
539561 'a@1.0.0' ,
540562 'b@1.0.0' ,
563+ 'c@1.0.0' ,
541564 '@npmcli/abbrev@2.0.0-beta.45' ,
542565 'abbrev@1.1.1' ,
543566 'bar@2.0.0' ,
@@ -557,6 +580,7 @@ t.test('query-selector-all', async t => {
557580 [ ':type(range)' , [
558581 'a@1.0.0' ,
559582 'abbrev@1.1.1' ,
583+ 'b@1.0.0' ,
560584 'bar@2.0.0' ,
561585 'baz@1.0.0' ,
562586 'dash-separated-pkg@1.0.0' ,
@@ -584,11 +608,12 @@ t.test('query-selector-all', async t => {
584608 [ ':path(./node_modules/bar)' , [ 'bar@2.0.0' ] ] ,
585609 [ ':path(node_modules/foo/node_modules/bar)' , [ 'bar@1.4.0' ] ] ,
586610 [ ':path(**/bar)' , [ 'bar@2.0.0' , 'bar@1.4.0' ] ] ,
587- [ ':path(*)' , [ 'a@1.0.0' , 'b@1.0.0' ] ] ,
611+ [ ':path(*)' , [ 'a@1.0.0' , 'b@1.0.0' , 'c@1.0.0' ] ] ,
588612 [ ':path()' , [
589613 'query-selector-all-tests@1.0.0' ,
590614 'a@1.0.0' ,
591615 'b@1.0.0' ,
616+ 'c@1.0.0' ,
592617 '@npmcli/abbrev@2.0.0-beta.45' ,
593618 'abbrev@1.1.1' ,
594619 'bar@2.0.0' ,
@@ -609,6 +634,7 @@ t.test('query-selector-all', async t => {
609634 'query-selector-all-tests@1.0.0' ,
610635 'a@1.0.0' ,
611636 'b@1.0.0' ,
637+ 'c@1.0.0' ,
612638 '@npmcli/abbrev@2.0.0-beta.45' ,
613639 'abbrev@1.1.1' ,
614640 'bar@2.0.0' ,
@@ -627,6 +653,7 @@ t.test('query-selector-all', async t => {
627653 'query-selector-all-tests@1.0.0' ,
628654 'a@1.0.0' ,
629655 'b@1.0.0' ,
656+ 'c@1.0.0' ,
630657 'abbrev@1.1.1' ,
631658 'bar@2.0.0' ,
632659 'baz@1.0.0' ,
@@ -690,6 +717,7 @@ t.test('query-selector-all', async t => {
690717 'query-selector-all-tests@1.0.0' ,
691718 'a@1.0.0' ,
692719 'b@1.0.0' ,
720+ 'c@1.0.0' ,
693721 'baz@1.0.0' ,
694722 'dash-separated-pkg@1.0.0' ,
695723 'ipsum@npm:sit@1.0.0' ,
@@ -702,6 +730,7 @@ t.test('query-selector-all', async t => {
702730 'query-selector-all-tests@1.0.0' ,
703731 'a@1.0.0' ,
704732 'b@1.0.0' ,
733+ 'c@1.0.0' ,
705734 'abbrev@1.1.1' ,
706735 'baz@1.0.0' ,
707736 'dash-separated-pkg@1.0.0' ,
@@ -720,6 +749,7 @@ t.test('query-selector-all', async t => {
720749 'query-selector-all-tests@1.0.0' ,
721750 'a@1.0.0' ,
722751 'b@1.0.0' ,
752+ 'c@1.0.0' ,
723753 'baz@1.0.0' ,
724754 'dash-separated-pkg@1.0.0' ,
725755 'ipsum@npm:sit@1.0.0' ,
@@ -731,6 +761,7 @@ t.test('query-selector-all', async t => {
731761 'query-selector-all-tests@1.0.0' ,
732762 'a@1.0.0' ,
733763 'b@1.0.0' ,
764+ 'c@1.0.0' ,
734765 'baz@1.0.0' ,
735766 'dash-separated-pkg@1.0.0' ,
736767 'ipsum@npm:sit@1.0.0' ,
@@ -832,6 +863,7 @@ t.test('query-selector-all', async t => {
832863 'query-selector-all-tests@1.0.0' ,
833864 'a@1.0.0' ,
834865 'b@1.0.0' ,
866+ 'c@1.0.0' ,
835867 '@npmcli/abbrev@2.0.0-beta.45' ,
836868 'abbrev@1.1.1' ,
837869 'bar@2.0.0' ,
@@ -882,15 +914,18 @@ t.test('query-selector-all', async t => {
882914 'query-selector-all-tests@1.0.0' ,
883915 'a@1.0.0' ,
884916 'b@1.0.0' ,
917+ 'c@1.0.0' ,
885918 'abbrev@1.1.1' ,
886919 'bar@2.0.0' ,
887920 'baz@1.0.0' ,
888921 'ipsum@npm:sit@1.0.0' ,
889922 'lorem@1.0.0' ,
890923 'moo@3.0.0' ,
891924 ] ] ,
892- [ '.workspace' , [ 'a@1.0.0' , 'b@1.0.0' ] ] ,
893- [ '.workspace > *' , [ 'a@1.0.0' , 'bar@2.0.0' , 'baz@1.0.0' ] ] ,
925+ [ '.workspace' , [ 'a@1.0.0' , 'b@1.0.0' , 'c@1.0.0' ] ] ,
926+ [ '.workspace > *' , [ 'a@1.0.0' , 'b@1.0.0' , 'bar@2.0.0' , 'baz@1.0.0' ] ] ,
927+ [ '.workspace .workspace' , [ 'a@1.0.0' , 'b@1.0.0' ] ] ,
928+ [ '.workspace .workspace .workspace' , [ 'a@1.0.0' ] ] ,
894929 [ '.workspace ~ *' , [
895930 'abbrev@1.1.1' ,
896931 'bar@2.0.0' ,
@@ -911,9 +946,11 @@ t.test('query-selector-all', async t => {
911946 'sive@1.0.0' ,
912947 ] ] ,
913948 [ '.dev *' , [
949+ 'baz@1.0.0' ,
914950 'dash-separated-pkg@1.0.0' ,
915951 'dasher@2.0.0' ,
916952 'bar@1.4.0' ,
953+ 'lorem@1.0.0' ,
917954 'recur@1.0.0' ,
918955 'sive@1.0.0' ,
919956 ] ] ,
@@ -923,6 +960,7 @@ t.test('query-selector-all', async t => {
923960 [ '.bundled ~ *' , [
924961 'a@1.0.0' ,
925962 'b@1.0.0' ,
963+ 'c@1.0.0' ,
926964 'bar@2.0.0' ,
927965 'foo@2.2.2' ,
928966 'ipsum@npm:sit@1.0.0' ,
0 commit comments