Skip to content

Commit a68ac74

Browse files
committed
Fix files map use
1 parent 163289c commit a68ac74

File tree

1 file changed

+59
-27
lines changed

1 file changed

+59
-27
lines changed

internal/project/service_test.go

Lines changed: 59 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ func TestService(t *testing.T) {
168168
service, _ := projecttestutil.Setup(files)
169169
service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "")
170170
assert.Check(t, service.GetScriptInfo("/home/projects/TS/p1/y.ts") == nil)
171+
files = nil // Avoid using initial file set after this point
171172

172173
err := service.ChangeFile(
173174
lsproto.VersionedTextDocumentIdentifier{
@@ -209,11 +210,12 @@ func TestService(t *testing.T) {
209210
},
210211
"include": ["src/index.ts"]
211212
}`
212-
service, _ := projecttestutil.Setup(files)
213+
service, host := projecttestutil.Setup(files)
213214
service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "")
214215
_, project := service.EnsureDefaultProjectForFile("/home/projects/TS/p1/src/index.ts")
215216
programBefore := project.GetProgram()
216217
assert.Equal(t, len(programBefore.GetSourceFiles()), 2)
218+
files = nil // Avoid using initial file set after this point
217219

218220
err := service.ChangeFile(
219221
lsproto.VersionedTextDocumentIdentifier{
@@ -242,14 +244,16 @@ func TestService(t *testing.T) {
242244
)
243245
assert.NilError(t, err)
244246

245-
files["/home/projects/TS/p1/tsconfig.json"] = `{
247+
err = host.FS().WriteFile("/home/projects/TS/p1/tsconfig.json", `{
246248
"compilerOptions": {
247249
"noLib": true,
248250
"module": "nodenext",
249251
"strict": true,
250252
},
251253
"include": ["./**/*"]
252-
}`
254+
}`, false)
255+
assert.NilError(t, err)
256+
253257
err = service.OnWatchedFilesChanged(t.Context(), []*lsproto.FileEvent{
254258
{
255259
Type: lsproto.FileChangeTypeChanged,
@@ -270,20 +274,23 @@ func TestService(t *testing.T) {
270274
t.Run("delete a file, close it, recreate it", func(t *testing.T) {
271275
t.Parallel()
272276
files := maps.Clone(defaultFiles)
273-
service, _ := projecttestutil.Setup(files)
277+
service, host := projecttestutil.Setup(files)
274278
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, "")
276280
assert.Equal(t, service.SourceFileCount(), 2)
281+
files = nil // Avoid using initial file set after this point
277282

278-
delete(files, "/home/projects/TS/p1/src/x.ts")
283+
assert.NilError(t, host.FS().Remove("/home/projects/TS/p1/src/x.ts"))
279284

280285
service.CloseFile("/home/projects/TS/p1/src/x.ts")
281286
assert.Check(t, service.GetScriptInfo("/home/projects/TS/p1/src/x.ts") == nil)
282287
assert.Check(t, service.Projects()[0].GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts") == nil)
283288
assert.Equal(t, service.SourceFileCount(), 1)
284289

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, "")
287294
assert.Equal(t, service.GetScriptInfo("/home/projects/TS/p1/src/x.ts").Text(), "")
288295
assert.Check(t, service.Projects()[0].GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts") != nil)
289296
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) {
296303
t.Parallel()
297304
files := maps.Clone(defaultFiles)
298305
delete(files, "/home/projects/TS/p1/tsconfig.json")
299-
service, _ := projecttestutil.Setup(files)
306+
service, host := projecttestutil.Setup(files)
300307
service.OpenFile("/home/projects/TS/p1/src/x.ts", files["/home/projects/TS/p1/src/x.ts"].(string), core.ScriptKindTS, "")
301308
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
302310

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)
304313

305314
service.CloseFile("/home/projects/TS/p1/src/x.ts")
306315
assert.Check(t, service.GetScriptInfo("/home/projects/TS/p1/src/x.ts") == nil)
307316
assert.Check(t, service.Projects()[0].GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts") == nil)
308317

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, "")
311322
assert.Equal(t, service.GetScriptInfo("/home/projects/TS/p1/src/x.ts").Text(), "")
312323
assert.Check(t, service.Projects()[0].GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts") != nil)
313324
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) {
333344
service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "")
334345
service.OpenFile("/home/projects/TS/p2/src/index.ts", files["/home/projects/TS/p2/src/index.ts"].(string), core.ScriptKindTS, "")
335346
assert.Equal(t, len(service.Projects()), 2)
347+
files = nil // Avoid using initial file set after this point
336348
_, p1 := service.EnsureDefaultProjectForFile("/home/projects/TS/p1/src/index.ts")
337349
_, p2 := service.EnsureDefaultProjectForFile("/home/projects/TS/p2/src/index.ts")
338350
assert.Equal(
@@ -356,6 +368,7 @@ func TestService(t *testing.T) {
356368
service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "")
357369
service.OpenFile("/home/projects/TS/p2/src/index.ts", files["/home/projects/TS/p2/src/index.ts"].(string), core.ScriptKindTS, "")
358370
assert.Equal(t, len(service.Projects()), 2)
371+
files = nil // Avoid using initial file set after this point
359372
_, p1 := service.EnsureDefaultProjectForFile("/home/projects/TS/p1/src/index.ts")
360373
_, p2 := service.EnsureDefaultProjectForFile("/home/projects/TS/p2/src/index.ts")
361374
x1 := p1.GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts")
@@ -371,13 +384,16 @@ func TestService(t *testing.T) {
371384
t.Run("change open file", func(t *testing.T) {
372385
t.Parallel()
373386
files := maps.Clone(defaultFiles)
374-
service, _ := projecttestutil.Setup(files)
387+
service, host := projecttestutil.Setup(files)
375388
service.OpenFile("/home/projects/TS/p1/src/x.ts", files["/home/projects/TS/p1/src/x.ts"].(string), core.ScriptKindTS, "")
376389
service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "")
377390
_, project := service.EnsureDefaultProjectForFile("/home/projects/TS/p1/src/index.ts")
378391
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)
379396

380-
files["/home/projects/TS/p1/src/x.ts"] = `export const x = 2;`
381397
assert.NilError(t, service.OnWatchedFilesChanged(t.Context(), []*lsproto.FileEvent{
382398
{
383399
Type: lsproto.FileChangeTypeChanged,
@@ -391,12 +407,15 @@ func TestService(t *testing.T) {
391407
t.Run("change closed program file", func(t *testing.T) {
392408
t.Parallel()
393409
files := maps.Clone(defaultFiles)
394-
service, _ := projecttestutil.Setup(files)
410+
service, host := projecttestutil.Setup(files)
395411
service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "")
396412
_, project := service.EnsureDefaultProjectForFile("/home/projects/TS/p1/src/index.ts")
397413
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)
398418

399-
files["/home/projects/TS/p1/src/x.ts"] = `export const x = 2;`
400419
assert.NilError(t, service.OnWatchedFilesChanged(t.Context(), []*lsproto.FileEvent{
401420
{
402421
Type: lsproto.FileChangeTypeChanged,
@@ -422,18 +441,20 @@ func TestService(t *testing.T) {
422441
let y: number = x;`,
423442
}
424443

425-
service, _ := projecttestutil.Setup(files)
444+
service, host := projecttestutil.Setup(files)
426445
service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "")
427446
_, project := service.EnsureDefaultProjectForFile("/home/projects/TS/p1/src/index.ts")
428447
program := project.GetProgram()
429448
assert.Equal(t, len(program.GetSemanticDiagnostics(projecttestutil.WithRequestID(t.Context()), program.GetSourceFile("/home/projects/TS/p1/src/index.ts"))), 0)
430449

431-
files["/home/projects/TS/p1/tsconfig.json"] = `{
450+
err := host.FS().WriteFile("/home/projects/TS/p1/tsconfig.json", `{
432451
"compilerOptions": {
433452
"noLib": false,
434453
"strict": true
435454
}
436-
}`
455+
}`, false)
456+
assert.NilError(t, err)
457+
437458
assert.NilError(t, service.OnWatchedFilesChanged(t.Context(), []*lsproto.FileEvent{
438459
{
439460
Type: lsproto.FileChangeTypeChanged,
@@ -457,13 +478,15 @@ func TestService(t *testing.T) {
457478
"/home/projects/TS/p1/src/x.ts": `export declare const x: number | undefined;`,
458479
"/home/projects/TS/p1/src/index.ts": `import { x } from "./x";`,
459480
}
460-
service, _ := projecttestutil.Setup(files)
481+
service, host := projecttestutil.Setup(files)
461482
service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "")
462483
_, project := service.EnsureDefaultProjectForFile("/home/projects/TS/p1/src/index.ts")
463484
program := project.GetProgram()
464485
assert.Equal(t, len(program.GetSemanticDiagnostics(projecttestutil.WithRequestID(t.Context()), program.GetSourceFile("/home/projects/TS/p1/src/index.ts"))), 0)
465486

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+
467490
assert.NilError(t, service.OnWatchedFilesChanged(t.Context(), []*lsproto.FileEvent{
468491
{
469492
Type: lsproto.FileChangeTypeDeleted,
@@ -488,13 +511,15 @@ func TestService(t *testing.T) {
488511
"/home/projects/TS/p1/src/index.ts": `let x = 2;`,
489512
"/home/projects/TS/p1/src/x.ts": `let y = x;`,
490513
}
491-
service, _ := projecttestutil.Setup(files)
514+
service, host := projecttestutil.Setup(files)
492515
service.OpenFile("/home/projects/TS/p1/src/x.ts", files["/home/projects/TS/p1/src/x.ts"].(string), core.ScriptKindTS, "")
493516
_, project := service.EnsureDefaultProjectForFile("/home/projects/TS/p1/src/x.ts")
494517
program := project.GetProgram()
495518
assert.Equal(t, len(program.GetSemanticDiagnostics(projecttestutil.WithRequestID(t.Context()), program.GetSourceFile("/home/projects/TS/p1/src/x.ts"))), 0)
496519

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+
498523
assert.NilError(t, service.OnWatchedFilesChanged(t.Context(), []*lsproto.FileEvent{
499524
{
500525
Type: lsproto.FileChangeTypeDeleted,
@@ -548,7 +573,9 @@ func TestService(t *testing.T) {
548573
})
549574

550575
// 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+
552579
assert.NilError(t, service.OnWatchedFilesChanged(t.Context(), []*lsproto.FileEvent{
553580
{
554581
Type: lsproto.FileChangeTypeCreated,
@@ -587,7 +614,9 @@ func TestService(t *testing.T) {
587614
}))
588615

589616
// 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+
591620
assert.NilError(t, service.OnWatchedFilesChanged(t.Context(), []*lsproto.FileEvent{
592621
{
593622
Type: lsproto.FileChangeTypeCreated,
@@ -612,7 +641,7 @@ func TestService(t *testing.T) {
612641
}`,
613642
"/home/projects/TS/p1/src/index.ts": `a;`,
614643
}
615-
service, _ := projecttestutil.Setup(files)
644+
service, host := projecttestutil.Setup(files)
616645
service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "")
617646
_, project := service.EnsureDefaultProjectForFile("/home/projects/TS/p1/src/index.ts")
618647
program := project.GetProgram()
@@ -621,7 +650,10 @@ func TestService(t *testing.T) {
621650
assert.Equal(t, len(program.GetSemanticDiagnostics(projecttestutil.WithRequestID(t.Context()), program.GetSourceFile("/home/projects/TS/p1/src/index.ts"))), 1)
622651

623652
// 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+
625657
assert.NilError(t, service.OnWatchedFilesChanged(t.Context(), []*lsproto.FileEvent{
626658
{
627659
Type: lsproto.FileChangeTypeCreated,

0 commit comments

Comments
 (0)