github.com/tiagovtristao/plz@v13.4.0+incompatible/tools/build_langserver/langserver/rename_test.go (about) 1 package langserver 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 9 "github.com/thought-machine/please/src/core" 10 "github.com/thought-machine/please/tools/build_langserver/lsp" 11 ) 12 13 func TestGetRenameEdits(t *testing.T) { 14 ctx := context.Background() 15 16 // copy over the handler from the setup and get a new analyzer so it would be reading the config 17 a, _ := newAnalyzer() 18 h := LsHandler{ 19 repoRoot: core.RepoRoot, 20 workspace: newWorkspaceStore(lsp.DocumentURI(core.RepoRoot)), 21 analyzer: a, 22 init: &lsp.InitializeParams{ 23 RootURI: lsp.DocumentURI(core.RepoRoot), 24 Capabilities: lsp.ClientCapabilities{ 25 TextDocument: lsp.TextDocumentClientCapabilities{ 26 Completion: lsp.Completion{ 27 CompletionItem: struct { 28 SnippetSupport bool `json:"snippetSupport,omitempty"` 29 }{SnippetSupport: true}}, 30 }, 31 }, 32 }, 33 } 34 35 uri := lsp.DocumentURI("file://tools/build_langserver/langserver/test_data/reference/BUILD.test") 36 h.analyzer.State.Config.Parse.BuildFileName = append(analyzer.State.Config.Parse.BuildFileName, 37 "BUILD.test") 38 storeFileWithCustomHandler(uri, &h) 39 40 edits, err := h.getRenameEdits(ctx, "blah", uri, lsp.Position{Line: 1, Character: 13}) 41 assert.NoError(t, err) 42 43 expected := lsp.Range{ 44 Start: lsp.Position{Line: 12, Character: 9}, 45 End: lsp.Position{Line: 12, Character: 15}, 46 } 47 48 // Check WorkspaceEdit.Changes 49 assert.Equal(t, 1, len(edits.Changes)) 50 eRange, ok := edits.Changes[uri] 51 assert.True(t, ok) 52 assert.Equal(t, 1, len(eRange)) 53 assert.Equal(t, expected, eRange[0].Range) 54 assert.Equal(t, ":blah", eRange[0].NewText) 55 56 // Check WorkspaceEdit.DocumentChanges 57 assert.Equal(t, 1, len(edits.DocumentChanges)) 58 assert.Equal(t, uri, edits.DocumentChanges[0].TextDocument.URI) 59 assert.Equal(t, 1, edits.DocumentChanges[0].TextDocument.Version) 60 assert.Equal(t, expected, edits.DocumentChanges[0].Edits[0].Range) 61 assert.Equal(t, ":blah", edits.DocumentChanges[0].Edits[0].NewText) 62 }