Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.
This commit is contained in:
@@ -35,11 +35,16 @@ public class PolicyPackSchemaTests
|
||||
.Build();
|
||||
}
|
||||
|
||||
private JsonNode YamlToJson(string yamlContent)
|
||||
private JsonElement YamlToJson(string yamlContent)
|
||||
{
|
||||
var yamlObject = _yamlDeserializer.Deserialize(new StringReader(yamlContent));
|
||||
var jsonString = _yamlToJsonSerializer.Serialize(yamlObject);
|
||||
return JsonNode.Parse(jsonString)!;
|
||||
return JsonDocument.Parse(jsonString).RootElement;
|
||||
}
|
||||
|
||||
private static JsonElement ParseJson(string json)
|
||||
{
|
||||
return JsonDocument.Parse(json).RootElement;
|
||||
}
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
@@ -96,7 +101,7 @@ public class PolicyPackSchemaTests
|
||||
[Fact]
|
||||
public void Schema_RequiresApiVersion()
|
||||
{
|
||||
var invalidPolicy = JsonNode.Parse("""
|
||||
var invalidPolicy = ParseJson("""
|
||||
{
|
||||
"kind": "PolicyPack",
|
||||
"metadata": { "name": "test-policy", "version": "1.0.0" },
|
||||
@@ -112,7 +117,7 @@ public class PolicyPackSchemaTests
|
||||
[Fact]
|
||||
public void Schema_RequiresKind()
|
||||
{
|
||||
var invalidPolicy = JsonNode.Parse("""
|
||||
var invalidPolicy = ParseJson("""
|
||||
{
|
||||
"apiVersion": "policy.stellaops.io/v1",
|
||||
"metadata": { "name": "test-policy", "version": "1.0.0" },
|
||||
@@ -128,7 +133,7 @@ public class PolicyPackSchemaTests
|
||||
[Fact]
|
||||
public void Schema_RequiresMetadata()
|
||||
{
|
||||
var invalidPolicy = JsonNode.Parse("""
|
||||
var invalidPolicy = ParseJson("""
|
||||
{
|
||||
"apiVersion": "policy.stellaops.io/v1",
|
||||
"kind": "PolicyPack",
|
||||
@@ -144,7 +149,7 @@ public class PolicyPackSchemaTests
|
||||
[Fact]
|
||||
public void Schema_RequiresSpec()
|
||||
{
|
||||
var invalidPolicy = JsonNode.Parse("""
|
||||
var invalidPolicy = ParseJson("""
|
||||
{
|
||||
"apiVersion": "policy.stellaops.io/v1",
|
||||
"kind": "PolicyPack",
|
||||
@@ -160,7 +165,7 @@ public class PolicyPackSchemaTests
|
||||
[Fact]
|
||||
public void Schema_ValidatesApiVersionFormat()
|
||||
{
|
||||
var invalidPolicy = JsonNode.Parse("""
|
||||
var invalidPolicy = ParseJson("""
|
||||
{
|
||||
"apiVersion": "invalid-version",
|
||||
"kind": "PolicyPack",
|
||||
@@ -177,7 +182,7 @@ public class PolicyPackSchemaTests
|
||||
[Fact]
|
||||
public void Schema_ValidatesKindEnum()
|
||||
{
|
||||
var invalidPolicy = JsonNode.Parse("""
|
||||
var invalidPolicy = ParseJson("""
|
||||
{
|
||||
"apiVersion": "policy.stellaops.io/v1",
|
||||
"kind": "InvalidKind",
|
||||
@@ -194,7 +199,7 @@ public class PolicyPackSchemaTests
|
||||
[Fact]
|
||||
public void Schema_AcceptsValidPolicyPack()
|
||||
{
|
||||
var validPolicy = JsonNode.Parse("""
|
||||
var validPolicy = ParseJson("""
|
||||
{
|
||||
"apiVersion": "policy.stellaops.io/v1",
|
||||
"kind": "PolicyPack",
|
||||
@@ -228,7 +233,7 @@ public class PolicyPackSchemaTests
|
||||
[Fact]
|
||||
public void Schema_AcceptsValidPolicyOverride()
|
||||
{
|
||||
var validOverride = JsonNode.Parse("""
|
||||
var validOverride = ParseJson("""
|
||||
{
|
||||
"apiVersion": "policy.stellaops.io/v1",
|
||||
"kind": "PolicyOverride",
|
||||
@@ -264,7 +269,7 @@ public class PolicyPackSchemaTests
|
||||
[InlineData("block")]
|
||||
public void Schema_AcceptsValidRuleActions(string action)
|
||||
{
|
||||
var policy = JsonNode.Parse($$"""
|
||||
var policy = ParseJson($$"""
|
||||
{
|
||||
"apiVersion": "policy.stellaops.io/v1",
|
||||
"kind": "PolicyPack",
|
||||
@@ -295,7 +300,7 @@ public class PolicyPackSchemaTests
|
||||
|
||||
private static void CollectErrors(EvaluationResults result, List<string> errors)
|
||||
{
|
||||
if (result.Errors != null && result.Errors.Count > 0)
|
||||
if (result.Errors is { Count: > 0 })
|
||||
{
|
||||
foreach (var error in result.Errors)
|
||||
{
|
||||
@@ -303,12 +308,12 @@ public class PolicyPackSchemaTests
|
||||
}
|
||||
}
|
||||
|
||||
if (!result.IsValid && result.HasErrors && errors.Count == 0)
|
||||
if (!result.IsValid && result.Errors is { Count: > 0 } && errors.Count == 0)
|
||||
{
|
||||
errors.Add($"At {result.InstanceLocation}: validation failed with no specific error message");
|
||||
}
|
||||
|
||||
if (result.HasDetails)
|
||||
if (result.Details is { Count: > 0 })
|
||||
{
|
||||
foreach (var detail in result.Details)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user