Files
aryx/sidecar/tests/Eryx.AgentHost.Tests/LspToolSessionTests.cs
T
David KayaandCopilot cf699b2442 fix: stabilize TypeScript LSP startup
Seed new TypeScript LSP profiles with --stdio, validate that shared profiles keep the required flag, auto-add it for existing profiles in the sidecar runtime, and include recent stderr when a language server dies before completing a request. Add shared and sidecar regression coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 23:16:48 +01:00

57 lines
1.5 KiB
C#

using System.Text.Json;
using Eryx.AgentHost.Contracts;
using Eryx.AgentHost.Services;
namespace Eryx.AgentHost.Tests;
public sealed class LspToolSessionTests
{
[Fact]
public void CreateJsonSerializerOptions_ReturnsReadOnlyResolverBackedOptions()
{
JsonSerializerOptions options = LspToolSession.CreateJsonSerializerOptions();
Assert.True(options.IsReadOnly);
Assert.NotNull(options.TypeInfoResolver);
string json = JsonSerializer.Serialize(
new
{
RelativePath = "src/file.ts",
Line = 12,
Character = 4,
},
options);
Assert.Contains("relativePath", json);
}
[Fact]
public void ResolveProcessArguments_AddsStdioForTypeScriptLanguageServer()
{
RunTurnLspProfileConfigDto profile = new()
{
Command = "typescript-language-server",
Args = [],
};
IReadOnlyList<string> args = LspToolSession.ResolveProcessArguments(profile);
Assert.Equal(["--stdio"], args);
}
[Fact]
public void ResolveProcessArguments_DoesNotDuplicateStdioWhenAlreadyPresent()
{
RunTurnLspProfileConfigDto profile = new()
{
Command = "typescript-language-server",
Args = ["--stdio"],
};
IReadOnlyList<string> args = LspToolSession.ResolveProcessArguments(profile);
Assert.Equal(["--stdio"], args);
}
}