save checkpoint
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T13:10:00Z",
|
||||
"testCommand": "dotnet test src/Policy/__Tests/StellaOps.Policy.Explainability.Tests/StellaOps.Policy.Explainability.Tests.csproj --no-restore -v normal && dotnet test src/Policy/__Tests/StellaOps.Policy.Tests/StellaOps.Policy.Tests.csproj --no-restore -v normal",
|
||||
"testFilter": "VerdictRationaleRenderer, ProofStudioService, CounterfactualEngine, ScoreExplanation",
|
||||
"testsRun": 816,
|
||||
"testsPassed": 816,
|
||||
"testsFailed": 0,
|
||||
"targetedTestMethods": [
|
||||
"VerdictRationaleRendererTests.Render_Should_CreateCompleteRationale",
|
||||
"VerdictRationaleRendererTests.Render_Should_BeContentAddressed",
|
||||
"VerdictRationaleRendererTests.RenderPlainText_Should_ProduceFourLineFormat",
|
||||
"VerdictRationaleRendererTests.RenderMarkdown_Should_IncludeHeaders",
|
||||
"VerdictRationaleRendererTests.RenderJson_Should_ProduceValidJson",
|
||||
"VerdictRationaleRendererTests.Evidence_Should_IncludeReachabilityDetails",
|
||||
"VerdictRationaleRendererTests.Evidence_Should_HandleMissingReachability",
|
||||
"VerdictRationaleRendererTests.Attestations_Should_HandleNoAttestations",
|
||||
"VerdictRationaleRendererTests.Decision_Should_IncludeMitigation",
|
||||
"ProofStudioServiceTests.Compose_MinimalRequest_ReturnsView",
|
||||
"ProofStudioServiceTests.Compose_WithScoreFactors_BuildsDashboard",
|
||||
"ProofStudioServiceTests.Compose_WithGuardrails_IncludesGuardrailsInDashboard",
|
||||
"ProofStudioServiceTests.Compose_FactorNamesAreFormatted",
|
||||
"ProofStudioServiceTests.Compose_GraphContainsScoreNodes",
|
||||
"ProofStudioServiceTests.Compose_ThrowsOnNullRequest",
|
||||
"ProofStudioServiceTests.ApplyCounterfactual_AddsOverlay",
|
||||
"ProofStudioServiceTests.ApplyCounterfactual_ThrowsOnNullView",
|
||||
"ProofStudioServiceTests.DI_ResolvesAllExplainabilityServices",
|
||||
"CounterfactualEngineTests.ComputeAsync_AlreadyPassing_ReturnsNoPaths",
|
||||
"CounterfactualEngineTests.ExceptionPath_EffortVariesBySeverity(Critical=5,High=4,Medium=3,Low=2)",
|
||||
"CounterfactualEngineTests.ExceptionPath_ExcludedWhenPolicyDisallows",
|
||||
"CounterfactualEngineTests.ExceptionPath_ExcludedWhenOptionDisabled",
|
||||
"CounterfactualEngineTests.VersionUpgradePath_UsesFixedVersionLookup",
|
||||
"CounterfactualEngineTests.VersionUpgradePath_NotProducedWhenNoFixAvailable",
|
||||
"CounterfactualEngineTests.CompensatingControlPath_HasEffort4",
|
||||
"CounterfactualEngineTests.CompensatingControlPath_ExcludedWhenPolicyDisallows",
|
||||
"CounterfactualEngineTests.ComputeAsync_ThrowsOnNullFinding",
|
||||
"CounterfactualEngineTests.ComputeAsync_ThrowsOnNullVerdict",
|
||||
"CounterfactualEngineTests.DefaultOptions_IncludeExceptionAndCompensatingControl",
|
||||
"CounterfactualEngineTests.CounterfactualResult_Blocked_SortsByEffort",
|
||||
"CounterfactualEngineTests.CounterfactualResult_AlreadyPassing_Properties",
|
||||
"CounterfactualEngineTests.CounterfactualPath_Vex_CorrectStructure",
|
||||
"CounterfactualEngineTests.CounterfactualPath_Exception_CorrectStructure",
|
||||
"CounterfactualEngineTests.CounterfactualPath_Reachability_CorrectStructure",
|
||||
"CounterfactualEngineTests.CounterfactualPath_VersionUpgrade_CorrectStructure",
|
||||
"CounterfactualEngineTests.CounterfactualPath_CompensatingControl_CorrectStructure"
|
||||
],
|
||||
"behaviorVerified": [
|
||||
"VerdictRationaleRenderer produces 4-line rationale (Evidence, PolicyClause, Attestations, Decision)",
|
||||
"Content-addressed RationaleId with rat:sha256: prefix (same input = same ID)",
|
||||
"Multi-format output: RenderPlainText (4 lines), RenderMarkdown (with ## headers), RenderJson (RFC 8785 canonical)",
|
||||
"Evidence includes reachability details (vulnerable function, entry point, path summary)",
|
||||
"Missing reachability handled gracefully (no 'reachable' in output)",
|
||||
"No attestations produces 'No attestations available.' message",
|
||||
"Decision includes mitigation guidance",
|
||||
"ProofStudioService.Compose builds ProofGraph with content-addressed GraphId (pg:sha256:)",
|
||||
"ProofStudioService.Compose with ScoreFactors builds dashboard with factor count and composite score",
|
||||
"ProofStudioService.Compose includes guardrails in dashboard",
|
||||
"ProofStudioService.Compose formats factor names (Title Case)",
|
||||
"ProofStudioService.Compose creates score nodes in ProofGraph (score:reachability, score:evidence, etc.)",
|
||||
"ProofStudioService.ApplyCounterfactual adds Counterfactual overlay nodes and changes GraphId",
|
||||
"DI resolves all explainability services (IVerdictRationaleRenderer, IProofGraphBuilder, IProofStudioService)",
|
||||
"CounterfactualEngine AlreadyPassing returns no paths",
|
||||
"CounterfactualEngine Exception path effort varies by severity (Critical=5, High=4, Medium=3, Low=2)",
|
||||
"CounterfactualEngine respects IncludeExceptionPaths and PolicyAllowsExceptions flags",
|
||||
"CounterfactualEngine VersionUpgrade path uses FixedVersionLookup delegate with current/required versions",
|
||||
"CounterfactualEngine CompensatingControl path has effort 4",
|
||||
"CounterfactualResult.Blocked sorts paths by effort, RecommendedPath is lowest effort",
|
||||
"All 5 CounterfactualPath factory methods produce correct structures"
|
||||
],
|
||||
"assertionTypes": [
|
||||
"content-addressed-id",
|
||||
"multi-format-rendering",
|
||||
"proof-graph-composition",
|
||||
"counterfactual-paths",
|
||||
"effort-estimation",
|
||||
"null-validation",
|
||||
"dependency-injection"
|
||||
],
|
||||
"newTestsWritten": [],
|
||||
"bugsFixed": [],
|
||||
"rawOutput": "Passed! - Failed: 0, Passed: 35, Skipped: 0, Total: 35, Duration: 359ms - StellaOps.Policy.Explainability.Tests.dll (net10.0|x64) | Passed! - Failed: 0, Passed: 781, Skipped: 0, Total: 781, Duration: 4s 637ms - StellaOps.Policy.Tests.dll (net10.0|x64)",
|
||||
"verdict": "pass"
|
||||
}
|
||||
Reference in New Issue
Block a user