@@ -4,7 +4,7 @@ import { ProjectLocator } from './project-locator'
4
4
import { URL , fileURLToPath } from 'url'
5
5
import { Settings } from '@tailwindcss/language-service/src/util/state'
6
6
import { createResolver } from './resolver'
7
- import { css , defineTest , js , json , scss , Storage , TestUtils } from './testing'
7
+ import { css , defineTest , js , json , scss , Storage , symlinkTo , TestUtils } from './testing'
8
8
import { normalizePath } from './utils'
9
9
10
10
let settings : Settings = {
@@ -317,6 +317,41 @@ testLocator({
317
317
] ,
318
318
} )
319
319
320
+ testLocator ( {
321
+ // options: { skip: true },
322
+ name : 'Recursive symlinks do not cause infinite traversal loops' ,
323
+ fs : {
324
+ 'src/a/b/c/index.css' : css `
325
+ @import 'tailwindcss';
326
+ ` ,
327
+ 'src/a/b/c/z' : symlinkTo ( 'src' ) ,
328
+ 'src/a/b/x' : symlinkTo ( 'src' ) ,
329
+ 'src/a/b/y' : symlinkTo ( 'src' ) ,
330
+ 'src/a/b/z' : symlinkTo ( 'src' ) ,
331
+ 'src/a/x' : symlinkTo ( 'src' ) ,
332
+
333
+ 'src/b/c/d/z' : symlinkTo ( 'src' ) ,
334
+ 'src/b/c/d/index.css' : css `` ,
335
+ 'src/b/c/x' : symlinkTo ( 'src' ) ,
336
+ 'src/b/c/y' : symlinkTo ( 'src' ) ,
337
+ 'src/b/c/z' : symlinkTo ( 'src' ) ,
338
+ 'src/b/x' : symlinkTo ( 'src' ) ,
339
+
340
+ 'src/c/d/e/z' : symlinkTo ( 'src' ) ,
341
+ 'src/c/d/x' : symlinkTo ( 'src' ) ,
342
+ 'src/c/d/y' : symlinkTo ( 'src' ) ,
343
+ 'src/c/d/z' : symlinkTo ( 'src' ) ,
344
+ 'src/c/x' : symlinkTo ( 'src' ) ,
345
+ } ,
346
+ expected : [
347
+ {
348
+ version : '4.0.6 (bundled)' ,
349
+ config : '/src/a/b/c/index.css' ,
350
+ content : [ ] ,
351
+ } ,
352
+ ] ,
353
+ } )
354
+
320
355
// ---
321
356
322
357
function testLocator ( {
0 commit comments