Files
tiku-backend.net/Tiku.IntegrationTests/Api/OpenApiDocumentationTests.cs
xiong 290a0c7bd7
Some checks failed
ci / release-gate (push) Has been cancelled
feat(platform): harden governance and approval workflows
2026-08-03 11:43:18 +08:00

39 lines
1.6 KiB
C#

using System.Net;
using System.Text.Json;
namespace Tiku.IntegrationTests.Api;
public sealed class OpenApiDocumentationTests
{
[Fact]
public async Task Openapi_document_can_be_generated_with_key_paths()
{
await using var factory = new ApiTestFactory();
using var client = factory.CreateClient();
using var response = await client.GetAsync("/openapi/v1.json");
var document = JsonDocument.Parse(await response.Content.ReadAsStringAsync());
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.True(document.RootElement.GetProperty("paths").TryGetProperty("/api/auth/login/password", out _));
Assert.True(document.RootElement.GetProperty("paths").TryGetProperty("/api/catalog/regions", out _));
}
[Fact]
public async Task Platform_operation_metadata_prefers_action_permission_and_exposes_risk()
{
await using var factory = new ApiTestFactory();
using var client = factory.CreateClient();
using var response = await client.GetAsync("/openapi/v1.json");
using var document = JsonDocument.Parse(await response.Content.ReadAsStringAsync());
var operation = document.RootElement.GetProperty("paths")
.GetProperty("/api/platform-admin/approvals/{requestId}/approve")
.GetProperty("post");
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.Equal("platform:approval:decide", operation.GetProperty("x-tiku-required-permission").GetString());
Assert.Equal("high", operation.GetProperty("x-tiku-risk-level").GetString());
}
}