62 lines
1.9 KiB
C#
62 lines
1.9 KiB
C#
using System.Text.Json;
|
|
using FreeCode.Core.Enums;
|
|
using FreeCode.Core.Models;
|
|
using Xunit;
|
|
|
|
[assembly: CollectionBehavior(DisableTestParallelization = true)]
|
|
|
|
namespace FreeCode.Core.Tests;
|
|
|
|
public class BasicTests
|
|
{
|
|
[Fact]
|
|
public void ToolPermissionContext_UsesEmptySetsByDefault()
|
|
{
|
|
var context = new ToolPermissionContext();
|
|
|
|
Assert.Empty(context.DeniedTools);
|
|
Assert.Empty(context.AllowedTools);
|
|
}
|
|
|
|
[Fact]
|
|
public void BridgeEnvironment_UsesRecordEquality()
|
|
{
|
|
var metadata = new Dictionary<string, string> { ["shell"] = "zsh" };
|
|
var left = new BridgeEnvironment("env-1", "Local", SpawnMode.Worktree, "/tmp/work", metadata);
|
|
var right = new BridgeEnvironment("env-1", "Local", SpawnMode.Worktree, "/tmp/work", metadata);
|
|
|
|
Assert.Equal(left, right);
|
|
}
|
|
|
|
[Fact]
|
|
public void WorkItem_StoresPayloadAndOptionalSessionToken()
|
|
{
|
|
using var document = JsonDocument.Parse("{" + "\"command\":\"build\"" + "}");
|
|
var workItem = new WorkItem("work-1", "shell", document.RootElement.Clone(), "session-token");
|
|
|
|
Assert.Equal("work-1", workItem.Id);
|
|
Assert.Equal("shell", workItem.Type);
|
|
Assert.Equal("build", workItem.Payload.GetProperty("command").GetString());
|
|
Assert.Equal("session-token", workItem.SessionToken);
|
|
}
|
|
|
|
[Fact]
|
|
public void SessionHandle_UsesNullUrlByDefault()
|
|
{
|
|
var handle = new SessionHandle("session-1", "token-1");
|
|
|
|
Assert.Equal("session-1", handle.SessionId);
|
|
Assert.Equal("token-1", handle.SessionToken);
|
|
Assert.Null(handle.Url);
|
|
}
|
|
|
|
[Fact]
|
|
public void PermissionMode_EnumValuesMatchExpectedOrder()
|
|
{
|
|
Assert.Equal(0, (int)PermissionMode.Default);
|
|
Assert.Equal(1, (int)PermissionMode.Plan);
|
|
Assert.Equal(2, (int)PermissionMode.AutoAccept);
|
|
Assert.Equal(3, (int)PermissionMode.BypassPermissions);
|
|
}
|
|
}
|