Close scratch iteration 009 grouped policy and VEX audit repairs
This commit is contained in:
@@ -109,4 +109,49 @@ public sealed class GovernanceCompatibilityEndpointsTests : IClassFixture<TestPo
|
||||
Assert.True(status.ValueKind == JsonValueKind.Array);
|
||||
Assert.True(status.GetArrayLength() > 0);
|
||||
}
|
||||
|
||||
[Trait("Category", TestCategories.Integration)]
|
||||
[Fact]
|
||||
public async Task ConflictsEndpoints_ReturnDashboardAndFilteredList()
|
||||
{
|
||||
var dashboardResponse = await _client.GetAsync("/api/v1/governance/conflicts/dashboard", TestContext.Current.CancellationToken);
|
||||
dashboardResponse.EnsureSuccessStatusCode();
|
||||
|
||||
var dashboard = await dashboardResponse.Content.ReadFromJsonAsync<JsonElement>(TestContext.Current.CancellationToken);
|
||||
Assert.True(dashboard.GetProperty("totalConflicts").GetInt32() >= 2);
|
||||
Assert.True(dashboard.GetProperty("byType").TryGetProperty("rule_overlap", out _));
|
||||
Assert.True(dashboard.GetProperty("trend").GetArrayLength() == 7);
|
||||
|
||||
var listResponse = await _client.GetAsync("/api/v1/governance/conflicts?severity=warning", TestContext.Current.CancellationToken);
|
||||
listResponse.EnsureSuccessStatusCode();
|
||||
|
||||
var conflicts = await listResponse.Content.ReadFromJsonAsync<JsonElement>(TestContext.Current.CancellationToken);
|
||||
Assert.True(conflicts.ValueKind == JsonValueKind.Array);
|
||||
Assert.All(conflicts.EnumerateArray(), item => Assert.Equal("warning", item.GetProperty("severity").GetString()));
|
||||
}
|
||||
|
||||
[Trait("Category", TestCategories.Integration)]
|
||||
[Fact]
|
||||
public async Task ConflictResolutionEndpoints_PersistUpdatedStatus()
|
||||
{
|
||||
var resolveResponse = await _client.PostAsJsonAsync(
|
||||
"/api/v1/governance/conflicts/conflict-001/resolve",
|
||||
new { resolution = "Consolidated precedence ordering" },
|
||||
TestContext.Current.CancellationToken);
|
||||
resolveResponse.EnsureSuccessStatusCode();
|
||||
|
||||
var resolved = await resolveResponse.Content.ReadFromJsonAsync<JsonElement>(TestContext.Current.CancellationToken);
|
||||
Assert.Equal("resolved", resolved.GetProperty("status").GetString());
|
||||
Assert.Equal("Consolidated precedence ordering", resolved.GetProperty("resolutionNotes").GetString());
|
||||
|
||||
var ignoreResponse = await _client.PostAsJsonAsync(
|
||||
"/api/v1/governance/conflicts/conflict-002/ignore",
|
||||
new { reason = "Accepted for lab-only profile" },
|
||||
TestContext.Current.CancellationToken);
|
||||
ignoreResponse.EnsureSuccessStatusCode();
|
||||
|
||||
var ignored = await ignoreResponse.Content.ReadFromJsonAsync<JsonElement>(TestContext.Current.CancellationToken);
|
||||
Assert.Equal("ignored", ignored.GetProperty("status").GetString());
|
||||
Assert.Equal("Accepted for lab-only profile", ignored.GetProperty("resolutionNotes").GetString());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user