1
0
Fork 0
mirror of https://github.com/laravel-ls/protocol.git synced 2026-06-16 03:54:56 +02:00

add tests

This commit is contained in:
Henrik Hautakoski 2026-03-01 22:57:28 +01:00
parent 5049160990
commit be37cd5a53
20 changed files with 755 additions and 1 deletions

47
lifecycle_test.go Normal file
View file

@ -0,0 +1,47 @@
package protocol_test
import (
"encoding/json"
"testing"
"github.com/laravel-ls/protocol"
)
func Test_Lifecycle_StructsUnmarshalValidJSON(t *testing.T) {
var initParams protocol.InitializeParams
if err := json.Unmarshal([]byte(`{
"processId":123,
"clientInfo":{"name":"vscode","version":"1.0"},
"locale":"en-US",
"rootPath":"/workspace",
"rootUri":"file:///workspace",
"initializationOptions":{"feature":true},
"capabilities":{"window":{"showDocument":{"support":true}}},
"trace":"messages",
"workspaceFolders":[{"uri":"file:///workspace","name":"workspace"}]
}`), &initParams); err != nil {
t.Fatalf("unmarshal InitializeParams failed: %v", err)
}
if initParams.ClientInfo == nil || initParams.ClientInfo.Name != "vscode" {
t.Fatalf("unexpected InitializeParams clientInfo: %+v", initParams.ClientInfo)
}
if initParams.Capabilities.Window == nil || initParams.Capabilities.Window.ShowDocument == nil || !initParams.Capabilities.Window.ShowDocument.Support {
t.Fatalf("unexpected InitializeParams capabilities: %+v", initParams.Capabilities)
}
var initResult protocol.InitializeResult
if err := json.Unmarshal([]byte(`{"capabilities":{"hoverProvider":true},"serverInfo":{"name":"ls","version":"0.1"}}`), &initResult); err != nil {
t.Fatalf("unmarshal InitializeResult failed: %v", err)
}
if initResult.ServerInfo == nil || initResult.ServerInfo.Name != "ls" {
t.Fatalf("unexpected InitializeResult: %+v", initResult)
}
var cancel protocol.CancelParams
if err := json.Unmarshal([]byte(`{"id":42}`), &cancel); err != nil {
t.Fatalf("unmarshal CancelParams failed: %v", err)
}
if cancel.Id.String() != "42" {
t.Fatalf("unexpected CancelParams id: %s", cancel.Id.String())
}
}