* 建立 .NET 8 解决方案及分层项目结构 * 添加 Flyshot.Core.Domain 领域模型(机器人、轨迹、运动学) * 添加 Flyshot.Core.Planning 规划层(ICSP、CubicSpline、采样器) * 添加 Flyshot.Core.Triggering 触发时序与 IO 时间轴 * 添加 Flyshot.Core.Config 配置兼容与 .robot 解析 * 添加 Flyshot.Server.Host 最小宿主及 /healthz 端点 * 补充单元测试与集成测试项目 * 添加 CLAUDE.md、AGENTS.md、README.md 项目规范
28 lines
935 B
C#
28 lines
935 B
C#
using System.Net;
|
|
using System.Text.Json;
|
|
using Microsoft.AspNetCore.Mvc.Testing;
|
|
|
|
namespace Flyshot.Server.IntegrationTests;
|
|
|
|
public sealed class FlyshotServerFactory : WebApplicationFactory<Program>;
|
|
|
|
public sealed class HealthEndpointTests(FlyshotServerFactory factory) : IClassFixture<FlyshotServerFactory>
|
|
{
|
|
[Fact]
|
|
public async Task GetHealthz_ReturnsOkPayload()
|
|
{
|
|
using var client = factory.CreateClient();
|
|
|
|
using var response = await client.GetAsync("/healthz");
|
|
|
|
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
|
|
|
await using var responseStream = await response.Content.ReadAsStreamAsync();
|
|
using var jsonDocument = await JsonDocument.ParseAsync(responseStream);
|
|
var root = jsonDocument.RootElement;
|
|
|
|
Assert.Equal("ok", root.GetProperty("status").GetString());
|
|
Assert.Equal("flyshot-server-host", root.GetProperty("service").GetString());
|
|
}
|
|
}
|