@@ -556,6 +556,83 @@ describe.each([
556
556
] )
557
557
} ,
558
558
)
559
+
560
+ test (
561
+ 'git ignore files outside of a repo are not considered' ,
562
+ {
563
+ fs : {
564
+ // Ignore everything in the "home" directory
565
+ 'home/.gitignore' : '*' ,
566
+
567
+ // Only ignore files called ignore-*.html in the actual git repo
568
+ 'home/project/.gitignore' : 'ignore-*.html' ,
569
+
570
+ 'home/project/package.json' : json `
571
+ {
572
+ "type": "module",
573
+ "dependencies": {
574
+ "tailwindcss": "workspace:^",
575
+ "@tailwindcss/cli": "workspace:^"
576
+ }
577
+ }
578
+ ` ,
579
+
580
+ 'home/project/src/index.css' : css ` @import 'tailwindcss'; ` ,
581
+ 'home/project/src/index.html' : html `
582
+ <div
583
+ class="content-['index.html']"
584
+ ></div>
585
+ ` ,
586
+ 'home/project/src/ignore-1.html' : html `
587
+ <div
588
+ class="content-['ignore-1.html']"
589
+ ></div>
590
+ ` ,
591
+ 'home/project/src/ignore-2.html' : html `
592
+ <div
593
+ class="content-['ignore-2.html']"
594
+ ></div>
595
+ ` ,
596
+ } ,
597
+
598
+ installDependencies : false ,
599
+ } ,
600
+ async ( { fs, root, exec } ) => {
601
+ await exec ( `pnpm install --ignore-workspace` , {
602
+ cwd : path . join ( root , 'home/project' ) ,
603
+ } )
604
+
605
+ // No git repo = all ignore files are considered
606
+ await exec ( `${ command } --input src/index.css --output dist/out.css` , {
607
+ cwd : path . join ( root , 'home/project' ) ,
608
+ } )
609
+
610
+ await fs . expectFileNotToContain ( './home/project/dist/out.css' , [
611
+ candidate `content-['index.html']` ,
612
+ candidate `content-['ignore-1.html']` ,
613
+ candidate `content-['ignore-2.html']` ,
614
+ ] )
615
+
616
+ // Make home/project a git repo
617
+ // Only ignore files within the repo are considered
618
+ await exec ( `git init` , {
619
+ cwd : path . join ( root , 'home/project' ) ,
620
+ } )
621
+
622
+ await exec ( `${ command } --input src/index.css --output dist/out.css` , {
623
+ cwd : path . join ( root , 'home/project' ) ,
624
+ } )
625
+
626
+ await fs . expectFileToContain ( './home/project/dist/out.css' , [
627
+ candidate `content-['index.html']` ,
628
+ ] )
629
+
630
+ await fs . expectFileNotToContain ( './home/project/dist/out.css' , [
631
+ candidate `content-['ignore-1.html']` ,
632
+ candidate `content-['ignore-2.html']` ,
633
+ ] )
634
+ } ,
635
+ )
559
636
} )
560
637
561
638
test (
0 commit comments