@@ -168,6 +168,7 @@ func TestService(t *testing.T) {
168
168
service , _ := projecttestutil .Setup (files )
169
169
service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
170
170
assert .Check (t , service .GetScriptInfo ("/home/projects/TS/p1/y.ts" ) == nil )
171
+ files = nil // Avoid using initial file set after this point
171
172
172
173
err := service .ChangeFile (
173
174
lsproto.VersionedTextDocumentIdentifier {
@@ -209,11 +210,12 @@ func TestService(t *testing.T) {
209
210
},
210
211
"include": ["src/index.ts"]
211
212
}`
212
- service , _ := projecttestutil .Setup (files )
213
+ service , host := projecttestutil .Setup (files )
213
214
service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
214
215
_ , project := service .EnsureDefaultProjectForFile ("/home/projects/TS/p1/src/index.ts" )
215
216
programBefore := project .GetProgram ()
216
217
assert .Equal (t , len (programBefore .GetSourceFiles ()), 2 )
218
+ files = nil // Avoid using initial file set after this point
217
219
218
220
err := service .ChangeFile (
219
221
lsproto.VersionedTextDocumentIdentifier {
@@ -242,14 +244,16 @@ func TestService(t *testing.T) {
242
244
)
243
245
assert .NilError (t , err )
244
246
245
- files [ "/home/projects/TS/p1/tsconfig.json" ] = `{
247
+ err = host . FS (). WriteFile ( "/home/projects/TS/p1/tsconfig.json" , `{
246
248
"compilerOptions": {
247
249
"noLib": true,
248
250
"module": "nodenext",
249
251
"strict": true,
250
252
},
251
253
"include": ["./**/*"]
252
- }`
254
+ }` , false )
255
+ assert .NilError (t , err )
256
+
253
257
err = service .OnWatchedFilesChanged (t .Context (), []* lsproto.FileEvent {
254
258
{
255
259
Type : lsproto .FileChangeTypeChanged ,
@@ -270,20 +274,23 @@ func TestService(t *testing.T) {
270
274
t .Run ("delete a file, close it, recreate it" , func (t * testing.T ) {
271
275
t .Parallel ()
272
276
files := maps .Clone (defaultFiles )
273
- service , _ := projecttestutil .Setup (files )
277
+ service , host := projecttestutil .Setup (files )
274
278
service .OpenFile ("/home/projects/TS/p1/src/x.ts" , files ["/home/projects/TS/p1/src/x.ts" ].(string ), core .ScriptKindTS , "" )
275
- service .OpenFile ("/home/projects/TS/p1/src/index.ts" , defaultFiles ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
279
+ service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
276
280
assert .Equal (t , service .SourceFileCount (), 2 )
281
+ files = nil // Avoid using initial file set after this point
277
282
278
- delete ( files , "/home/projects/TS/p1/src/x.ts" )
283
+ assert . NilError ( t , host . FS (). Remove ( "/home/projects/TS/p1/src/x.ts" ) )
279
284
280
285
service .CloseFile ("/home/projects/TS/p1/src/x.ts" )
281
286
assert .Check (t , service .GetScriptInfo ("/home/projects/TS/p1/src/x.ts" ) == nil )
282
287
assert .Check (t , service .Projects ()[0 ].GetProgram ().GetSourceFile ("/home/projects/TS/p1/src/x.ts" ) == nil )
283
288
assert .Equal (t , service .SourceFileCount (), 1 )
284
289
285
- files ["/home/projects/TS/p1/src/x.ts" ] = ``
286
- service .OpenFile ("/home/projects/TS/p1/src/x.ts" , files ["/home/projects/TS/p1/src/x.ts" ].(string ), core .ScriptKindTS , "" )
290
+ err := host .FS ().WriteFile ("/home/projects/TS/p1/src/x.ts" , "" , false )
291
+ assert .NilError (t , err )
292
+
293
+ service .OpenFile ("/home/projects/TS/p1/src/x.ts" , "" , core .ScriptKindTS , "" )
287
294
assert .Equal (t , service .GetScriptInfo ("/home/projects/TS/p1/src/x.ts" ).Text (), "" )
288
295
assert .Check (t , service .Projects ()[0 ].GetProgram ().GetSourceFile ("/home/projects/TS/p1/src/x.ts" ) != nil )
289
296
assert .Equal (t , service .Projects ()[0 ].GetProgram ().GetSourceFile ("/home/projects/TS/p1/src/x.ts" ).Text (), "" )
@@ -296,18 +303,22 @@ func TestService(t *testing.T) {
296
303
t .Parallel ()
297
304
files := maps .Clone (defaultFiles )
298
305
delete (files , "/home/projects/TS/p1/tsconfig.json" )
299
- service , _ := projecttestutil .Setup (files )
306
+ service , host := projecttestutil .Setup (files )
300
307
service .OpenFile ("/home/projects/TS/p1/src/x.ts" , files ["/home/projects/TS/p1/src/x.ts" ].(string ), core .ScriptKindTS , "" )
301
308
service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
309
+ files = nil // Avoid using initial file set after this point
302
310
303
- delete (files , "/home/projects/TS/p1/src/x.ts" )
311
+ err := host .FS ().Remove ("/home/projects/TS/p1/src/x.ts" )
312
+ assert .NilError (t , err )
304
313
305
314
service .CloseFile ("/home/projects/TS/p1/src/x.ts" )
306
315
assert .Check (t , service .GetScriptInfo ("/home/projects/TS/p1/src/x.ts" ) == nil )
307
316
assert .Check (t , service .Projects ()[0 ].GetProgram ().GetSourceFile ("/home/projects/TS/p1/src/x.ts" ) == nil )
308
317
309
- files ["/home/projects/TS/p1/src/x.ts" ] = ``
310
- service .OpenFile ("/home/projects/TS/p1/src/x.ts" , files ["/home/projects/TS/p1/src/x.ts" ].(string ), core .ScriptKindTS , "" )
318
+ err = host .FS ().WriteFile ("/home/projects/TS/p1/src/x.ts" , "" , false )
319
+ assert .NilError (t , err )
320
+
321
+ service .OpenFile ("/home/projects/TS/p1/src/x.ts" , "" , core .ScriptKindTS , "" )
311
322
assert .Equal (t , service .GetScriptInfo ("/home/projects/TS/p1/src/x.ts" ).Text (), "" )
312
323
assert .Check (t , service .Projects ()[0 ].GetProgram ().GetSourceFile ("/home/projects/TS/p1/src/x.ts" ) != nil )
313
324
assert .Equal (t , service .Projects ()[0 ].GetProgram ().GetSourceFile ("/home/projects/TS/p1/src/x.ts" ).Text (), "" )
@@ -333,6 +344,7 @@ func TestService(t *testing.T) {
333
344
service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
334
345
service .OpenFile ("/home/projects/TS/p2/src/index.ts" , files ["/home/projects/TS/p2/src/index.ts" ].(string ), core .ScriptKindTS , "" )
335
346
assert .Equal (t , len (service .Projects ()), 2 )
347
+ files = nil // Avoid using initial file set after this point
336
348
_ , p1 := service .EnsureDefaultProjectForFile ("/home/projects/TS/p1/src/index.ts" )
337
349
_ , p2 := service .EnsureDefaultProjectForFile ("/home/projects/TS/p2/src/index.ts" )
338
350
assert .Equal (
@@ -356,6 +368,7 @@ func TestService(t *testing.T) {
356
368
service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
357
369
service .OpenFile ("/home/projects/TS/p2/src/index.ts" , files ["/home/projects/TS/p2/src/index.ts" ].(string ), core .ScriptKindTS , "" )
358
370
assert .Equal (t , len (service .Projects ()), 2 )
371
+ files = nil // Avoid using initial file set after this point
359
372
_ , p1 := service .EnsureDefaultProjectForFile ("/home/projects/TS/p1/src/index.ts" )
360
373
_ , p2 := service .EnsureDefaultProjectForFile ("/home/projects/TS/p2/src/index.ts" )
361
374
x1 := p1 .GetProgram ().GetSourceFile ("/home/projects/TS/p1/src/x.ts" )
@@ -371,13 +384,16 @@ func TestService(t *testing.T) {
371
384
t .Run ("change open file" , func (t * testing.T ) {
372
385
t .Parallel ()
373
386
files := maps .Clone (defaultFiles )
374
- service , _ := projecttestutil .Setup (files )
387
+ service , host := projecttestutil .Setup (files )
375
388
service .OpenFile ("/home/projects/TS/p1/src/x.ts" , files ["/home/projects/TS/p1/src/x.ts" ].(string ), core .ScriptKindTS , "" )
376
389
service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
377
390
_ , project := service .EnsureDefaultProjectForFile ("/home/projects/TS/p1/src/index.ts" )
378
391
programBefore := project .GetProgram ()
392
+ files = nil // Avoid using initial file set after this point
393
+
394
+ err := host .FS ().WriteFile ("/home/projects/TS/p1/src/x.ts" , `export const x = 2;` , false )
395
+ assert .NilError (t , err )
379
396
380
- files ["/home/projects/TS/p1/src/x.ts" ] = `export const x = 2;`
381
397
assert .NilError (t , service .OnWatchedFilesChanged (t .Context (), []* lsproto.FileEvent {
382
398
{
383
399
Type : lsproto .FileChangeTypeChanged ,
@@ -391,12 +407,15 @@ func TestService(t *testing.T) {
391
407
t .Run ("change closed program file" , func (t * testing.T ) {
392
408
t .Parallel ()
393
409
files := maps .Clone (defaultFiles )
394
- service , _ := projecttestutil .Setup (files )
410
+ service , host := projecttestutil .Setup (files )
395
411
service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
396
412
_ , project := service .EnsureDefaultProjectForFile ("/home/projects/TS/p1/src/index.ts" )
397
413
programBefore := project .GetProgram ()
414
+ files = nil // Avoid using initial file set after this point
415
+
416
+ err := host .FS ().WriteFile ("/home/projects/TS/p1/src/x.ts" , `export const x = 2;` , false )
417
+ assert .NilError (t , err )
398
418
399
- files ["/home/projects/TS/p1/src/x.ts" ] = `export const x = 2;`
400
419
assert .NilError (t , service .OnWatchedFilesChanged (t .Context (), []* lsproto.FileEvent {
401
420
{
402
421
Type : lsproto .FileChangeTypeChanged ,
@@ -422,18 +441,20 @@ func TestService(t *testing.T) {
422
441
let y: number = x;` ,
423
442
}
424
443
425
- service , _ := projecttestutil .Setup (files )
444
+ service , host := projecttestutil .Setup (files )
426
445
service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
427
446
_ , project := service .EnsureDefaultProjectForFile ("/home/projects/TS/p1/src/index.ts" )
428
447
program := project .GetProgram ()
429
448
assert .Equal (t , len (program .GetSemanticDiagnostics (projecttestutil .WithRequestID (t .Context ()), program .GetSourceFile ("/home/projects/TS/p1/src/index.ts" ))), 0 )
430
449
431
- files [ "/home/projects/TS/p1/tsconfig.json" ] = `{
450
+ err := host . FS (). WriteFile ( "/home/projects/TS/p1/tsconfig.json" , `{
432
451
"compilerOptions": {
433
452
"noLib": false,
434
453
"strict": true
435
454
}
436
- }`
455
+ }` , false )
456
+ assert .NilError (t , err )
457
+
437
458
assert .NilError (t , service .OnWatchedFilesChanged (t .Context (), []* lsproto.FileEvent {
438
459
{
439
460
Type : lsproto .FileChangeTypeChanged ,
@@ -457,13 +478,15 @@ func TestService(t *testing.T) {
457
478
"/home/projects/TS/p1/src/x.ts" : `export declare const x: number | undefined;` ,
458
479
"/home/projects/TS/p1/src/index.ts" : `import { x } from "./x";` ,
459
480
}
460
- service , _ := projecttestutil .Setup (files )
481
+ service , host := projecttestutil .Setup (files )
461
482
service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
462
483
_ , project := service .EnsureDefaultProjectForFile ("/home/projects/TS/p1/src/index.ts" )
463
484
program := project .GetProgram ()
464
485
assert .Equal (t , len (program .GetSemanticDiagnostics (projecttestutil .WithRequestID (t .Context ()), program .GetSourceFile ("/home/projects/TS/p1/src/index.ts" ))), 0 )
465
486
466
- delete (files , "/home/projects/TS/p1/src/x.ts" )
487
+ err := host .FS ().Remove ("/home/projects/TS/p1/src/x.ts" )
488
+ assert .NilError (t , err )
489
+
467
490
assert .NilError (t , service .OnWatchedFilesChanged (t .Context (), []* lsproto.FileEvent {
468
491
{
469
492
Type : lsproto .FileChangeTypeDeleted ,
@@ -488,13 +511,15 @@ func TestService(t *testing.T) {
488
511
"/home/projects/TS/p1/src/index.ts" : `let x = 2;` ,
489
512
"/home/projects/TS/p1/src/x.ts" : `let y = x;` ,
490
513
}
491
- service , _ := projecttestutil .Setup (files )
514
+ service , host := projecttestutil .Setup (files )
492
515
service .OpenFile ("/home/projects/TS/p1/src/x.ts" , files ["/home/projects/TS/p1/src/x.ts" ].(string ), core .ScriptKindTS , "" )
493
516
_ , project := service .EnsureDefaultProjectForFile ("/home/projects/TS/p1/src/x.ts" )
494
517
program := project .GetProgram ()
495
518
assert .Equal (t , len (program .GetSemanticDiagnostics (projecttestutil .WithRequestID (t .Context ()), program .GetSourceFile ("/home/projects/TS/p1/src/x.ts" ))), 0 )
496
519
497
- delete (files , "/home/projects/TS/p1/src/index.ts" )
520
+ err := host .FS ().Remove ("/home/projects/TS/p1/src/index.ts" )
521
+ assert .NilError (t , err )
522
+
498
523
assert .NilError (t , service .OnWatchedFilesChanged (t .Context (), []* lsproto.FileEvent {
499
524
{
500
525
Type : lsproto .FileChangeTypeDeleted ,
@@ -548,7 +573,9 @@ func TestService(t *testing.T) {
548
573
})
549
574
550
575
// Add the missing file
551
- files ["/home/projects/TS/p1/src/y.ts" ] = `export const y = 1;`
576
+ err := host .FS ().WriteFile ("/home/projects/TS/p1/src/y.ts" , `export const y = 1;` , false )
577
+ assert .NilError (t , err )
578
+
552
579
assert .NilError (t , service .OnWatchedFilesChanged (t .Context (), []* lsproto.FileEvent {
553
580
{
554
581
Type : lsproto .FileChangeTypeCreated ,
@@ -587,7 +614,9 @@ func TestService(t *testing.T) {
587
614
}))
588
615
589
616
// Add a new file through failed lookup watch
590
- files ["/home/projects/TS/p1/src/z.ts" ] = `export const z = 1;`
617
+ err := host .FS ().WriteFile ("/home/projects/TS/p1/src/z.ts" , `export const z = 1;` , false )
618
+ assert .NilError (t , err )
619
+
591
620
assert .NilError (t , service .OnWatchedFilesChanged (t .Context (), []* lsproto.FileEvent {
592
621
{
593
622
Type : lsproto .FileChangeTypeCreated ,
@@ -612,7 +641,7 @@ func TestService(t *testing.T) {
612
641
}` ,
613
642
"/home/projects/TS/p1/src/index.ts" : `a;` ,
614
643
}
615
- service , _ := projecttestutil .Setup (files )
644
+ service , host := projecttestutil .Setup (files )
616
645
service .OpenFile ("/home/projects/TS/p1/src/index.ts" , files ["/home/projects/TS/p1/src/index.ts" ].(string ), core .ScriptKindTS , "" )
617
646
_ , project := service .EnsureDefaultProjectForFile ("/home/projects/TS/p1/src/index.ts" )
618
647
program := project .GetProgram ()
@@ -621,7 +650,10 @@ func TestService(t *testing.T) {
621
650
assert .Equal (t , len (program .GetSemanticDiagnostics (projecttestutil .WithRequestID (t .Context ()), program .GetSourceFile ("/home/projects/TS/p1/src/index.ts" ))), 1 )
622
651
623
652
// Add a new file through wildcard watch
624
- files ["/home/projects/TS/p1/src/a.ts" ] = `const a = 1;`
653
+
654
+ err := host .FS ().WriteFile ("/home/projects/TS/p1/src/a.ts" , `const a = 1;` , false )
655
+ assert .NilError (t , err )
656
+
625
657
assert .NilError (t , service .OnWatchedFilesChanged (t .Context (), []* lsproto.FileEvent {
626
658
{
627
659
Type : lsproto .FileChangeTypeCreated ,
0 commit comments