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  }