1+ import { JsonObjectNode , JsonParser } from '@croct/json5-parser' ;
12import { fs } from 'memfs' ;
23import { join } from 'path' ;
34import { describe , expect , test , vi } from 'vitest' ;
@@ -39,6 +40,16 @@ function createFakeFiles(dir: string) {
3940 fs . writeFileSync ( join ( dir , 'fake.ts' ) , 'fake file' ) ;
4041 fs . writeFileSync ( join ( dir , 'package.json' ) , '{"name": "fake"}' ) ;
4142 fs . writeFileSync ( join ( dir , 'src' , 'global.css' ) , 'p{color: red}' ) ;
43+ fs . mkdirSync ( join ( dir , '.vscode' ) , { recursive : true } ) ;
44+ const settings = JsonParser . parse < JsonObjectNode > (
45+ `{
46+ // Comment
47+ "name": "John Doe",
48+ "age": 42,
49+ }` ,
50+ JsonObjectNode
51+ ) ;
52+ fs . writeFileSync ( join ( dir , '.vscode' , 'settings.json' ) , settings . toString ( ) ) ;
4253}
4354
4455describe ( 'mergeIntegrationDir' , ( ) => {
@@ -51,6 +62,7 @@ describe('mergeIntegrationDir', () => {
5162 const expectedResults = [
5263 'destDir/subDestDir/fake.ts' ,
5364 'destDir/subDestDir/package.json' ,
65+ 'destDir/subDestDir/.vscode/settings.json' ,
5466 'destDir/subDestDir/src/global.css' ,
5567 ] ;
5668
@@ -64,6 +76,18 @@ describe('mergeIntegrationDir', () => {
6476 const monorepoSubDir = join ( fakeDestDir , 'apps' , 'subpackage' , 'src' ) ;
6577 fs . mkdirSync ( monorepoSubDir , { recursive : true } ) ;
6678 fs . writeFileSync ( join ( monorepoSubDir , 'global.css' ) , '/* CSS */' ) ;
79+ const settings = JsonParser . parse < JsonObjectNode > (
80+ `{
81+ // Comment Foo
82+ "css.lint.unknownAtRules": "ignore"
83+ }` ,
84+ JsonObjectNode
85+ ) ;
86+ fs . mkdirSync ( join ( fakeDestDir , 'apps' , 'subpackage' , '.vscode' ) ) ;
87+ fs . writeFileSync (
88+ join ( fakeDestDir , 'apps' , 'subpackage' , '.vscode' , 'settings.json' ) ,
89+ settings . toString ( )
90+ ) ;
6791
6892 // Add a file that should stay in the root
6993 fs . writeFileSync ( join ( fakeSrcDir , 'should-stay-in-root.ts' ) , 'fake file' ) ;
@@ -84,6 +108,7 @@ describe('mergeIntegrationDir', () => {
84108 `destDir/subDestDir/should-stay-in-root.ts` ,
85109 `destDir/subDestDir/package.json` ,
86110 `destDir/subDestDir/should-stay/should-also-stay.ts` ,
111+ 'destDir/subDestDir/apps/subpackage/.vscode/settings.json' ,
87112 `destDir/subDestDir/apps/subpackage/src/global.css` ,
88113 ] ;
89114
0 commit comments