Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.
This commit is contained in:
@@ -164,7 +164,7 @@ public class EnvironmentOverrideTests
|
||||
|
||||
// Production should have lower unknowns threshold
|
||||
var threshold = double.Parse(settings["unknownsThreshold"]?.ToString() ?? "0", CultureInfo.InvariantCulture);
|
||||
threshold.Should().BeLessOrEqualTo(0.05);
|
||||
threshold.Should().BeLessThanOrEqualTo(0.05);
|
||||
|
||||
// Production should require signing
|
||||
ParseBool(settings["requireSignedSbom"]).Should().BeTrue();
|
||||
@@ -207,6 +207,6 @@ public class EnvironmentOverrideTests
|
||||
|
||||
// Staging should have moderate unknowns threshold
|
||||
var threshold = double.Parse(settings["unknownsThreshold"]?.ToString() ?? "0", CultureInfo.InvariantCulture);
|
||||
threshold.Should().BeGreaterThan(0.05).And.BeLessOrEqualTo(0.15);
|
||||
threshold.Should().BeGreaterThan(0.05).And.BeLessThanOrEqualTo(0.15);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -9,19 +9,9 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.0" />
|
||||
<PackageReference Include="xunit" Version="2.9.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.4">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="FluentAssertions" Version="6.12.0" />
|
||||
<PackageReference Include="YamlDotNet" Version="16.2.1" />
|
||||
<PackageReference Include="JsonSchema.Net" Version="7.3.4" />
|
||||
<PackageReference Include="FluentAssertions" />
|
||||
<PackageReference Include="YamlDotNet" />
|
||||
<PackageReference Include="JsonSchema.Net" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -38,4 +28,4 @@
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../../../__Libraries/StellaOps.TestKit/StellaOps.TestKit.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user