github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/lsp/lsp_test.go (about) 1 package lsp 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 "go.lsp.dev/uri" 11 12 "github.com/tilt-dev/tilt/internal/testutils" 13 "github.com/tilt-dev/tilt/internal/testutils/tempdir" 14 "github.com/tilt-dev/tilt/internal/tiltfile/tiltextension" 15 ) 16 17 func TestReadDocument(t *testing.T) { 18 f := newFixture(t) 19 f.MkdirAll("tilt-extensions/hello") 20 contents := `hello = "Hi"` 21 f.WriteFile("tilt-extensions/hello/Tiltfile", contents) 22 23 bytes, err := f.finder.readDocument(uri.URI("ext://hello")) 24 require.NoError(t, err) 25 assert.Equal(t, contents, string(bytes)) 26 27 _, err = f.finder.readDocument(uri.URI("ext://world")) 28 require.Error(t, err) 29 assert.True(t, os.IsNotExist(err)) 30 31 bytes, err = f.finder.readDocument(uri.File(filepath.Join(f.Path(), "tilt-extensions/hello/Tiltfile"))) 32 require.NoError(t, err) 33 assert.Equal(t, contents, string(bytes)) 34 } 35 36 func TestResolveURI(t *testing.T) { 37 f := newFixture(t) 38 f.MkdirAll("tilt-extensions/hello") 39 contents := `hello = "Hi"` 40 tiltfile := f.WriteFile("tilt-extensions/hello/Tiltfile", contents) 41 42 path, err := f.finder.resolveURI(uri.URI("ext://hello")) 43 require.NoError(t, err) 44 assert.Equal(t, tiltfile, path) 45 46 path, err = f.finder.resolveURI(uri.File(tiltfile)) 47 require.NoError(t, err) 48 assert.Equal(t, tiltfile, path) 49 } 50 51 type fixture struct { 52 tempdir.TempDirFixture 53 finder *extensionFinder 54 } 55 56 func newFixture(t *testing.T) *fixture { 57 ctx, _, _ := testutils.CtxAndAnalyticsForTest() 58 f := &fixture{ 59 TempDirFixture: *tempdir.NewTempDirFixture(t), 60 finder: &extensionFinder{ctx: ctx}, 61 } 62 extPlugin := tiltextension.NewFakePlugin( 63 tiltextension.NewFakeExtRepoReconciler(f.Path()), 64 tiltextension.NewFakeExtReconciler(f.Path())) 65 f.finder.initializePlugins(extPlugin) 66 return f 67 }