Files
nexus/backend-tests/OpenClawRuntimeTests.cs
AzuTear 144edf58fe
CI - Build & Test / Backend (.NET) (push) Successful in 40s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m47s
CI - Build & Test / Security Check (push) Successful in 3s
CI - Build & Test / Deploy Nexus (push) Successful in 34s
fix: restore production OpenClaw runtime health
2026-07-31 23:08:26 +02:00

47 lines
1.5 KiB
C#

using System.Net;
using Microsoft.Extensions.Configuration;
using Nexus.Api.Data;
using Nexus.Api.Integrations;
using Xunit;
namespace Nexus.Api.Tests;
public sealed class OpenClawRuntimeTests
{
[Fact]
public async Task GetStatusAsync_BlankPasswordFallsBackToConfiguredToken()
{
string? authorization = null;
var configuration = new ConfigurationBuilder()
.AddInMemoryCollection(new Dictionary<string, string?>
{
["Integrations:OpenClaw:Password"] = string.Empty,
["Integrations:OpenClaw:Token"] = "gateway-token"
})
.Build();
var client = new HttpClient(new StubHandler(request =>
{
authorization = request.Headers.Authorization?.ToString();
return new HttpResponseMessage(HttpStatusCode.OK);
}))
{
BaseAddress = new Uri("http://openclaw-gateway:18789")
};
var runtime = new OpenClawRuntime(client, configuration);
var status = await runtime.GetStatusAsync(CancellationToken.None);
Assert.Equal(OperationalStatus.Online, status.Status);
Assert.Equal("Bearer gateway-token", authorization);
}
private sealed class StubHandler(
Func<HttpRequestMessage, HttpResponseMessage> responder) : HttpMessageHandler
{
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
=> Task.FromResult(responder(request));
}
}