@@ -4,7 +4,7 @@ import { ProjectLocator } from './project-locator'
44import { URL , fileURLToPath } from 'url'
55import { Settings } from '@tailwindcss/language-service/src/util/state'
66import { 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'
88import { normalizePath } from './utils'
99
1010let settings : Settings = {
@@ -317,6 +317,41 @@ testLocator({
317317 ] ,
318318} )
319319
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+
320355// ---
321356
322357function testLocator ( {
0 commit comments