more features checks. setup improvements
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"type": "integration",
|
||||
"capturedAtUtc": "2026-02-13T10:30:00Z",
|
||||
"testCommand": "dotnet test src/Policy/__Tests/StellaOps.Policy.Explainability.Tests/StellaOps.Policy.Explainability.Tests.csproj --no-restore -v normal",
|
||||
"testFilter": "VerdictRationaleRendererTests covering 4-line template rendering, content-addressed RationaleId, multi-format output, reachability details, attestation references",
|
||||
"testsRun": 35,
|
||||
"testsPassed": 35,
|
||||
"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"
|
||||
],
|
||||
"behaviorVerified": [
|
||||
"VerdictRationaleRenderer: 4-line template with Evidence, PolicyClause, Attestations, Decision sections",
|
||||
"Content-addressed RationaleId: rat:sha256:{hash} computed via canonical JSON (RFC 8785) + SHA256, stable across identical inputs",
|
||||
"RationaleEvidence: includes CVE, ComponentIdentity (PURL, name, version, ecosystem), ReachabilityDetail (VulnerableFunction, EntryPoint, PathSummary)",
|
||||
"Evidence FormattedText includes vulnerable function symbol and entry point when reachability present; omits reachability details when null",
|
||||
"RationaleAttestations: PathWitness (reachability proof ref), VexStatements (list), Provenance ref, each with Id/Type/Digest/Summary",
|
||||
"Attestations FormattedText: 'No attestations available.' when no attestation refs provided",
|
||||
"RationalePolicyClause: ClauseId, RuleDescription, Conditions list, FormattedText with policy clause rendering",
|
||||
"RationaleDecision: Verdict, Score, Recommendation, MitigationGuidance (Action + Details)",
|
||||
"RationaleInputDigests: VerdictDigest, PolicyDigest, EvidenceDigest for full proof chain",
|
||||
"Multi-format output: RenderPlainText (4 lines), RenderMarkdown (## headers with rationale ID), RenderJson (canonical JSON with snake_case properties)",
|
||||
"VerdictRationale model: SchemaVersion 1.0, VerdictReference (AttestationId, ArtifactDigest, PolicyId, Cve, ComponentPurl)"
|
||||
],
|
||||
"assertionTypes": [
|
||||
"value equality (Should().Be for CVE, ClauseId, Verdict)",
|
||||
"string containment (Should().Contain for formatted text sections)",
|
||||
"prefix checks (Should().StartWith for rat:sha256:)",
|
||||
"collection assertions (Should().HaveCount(4) for plain text lines)",
|
||||
"null checks (Should().NotBeNull, Should().NotBeNullOrEmpty)"
|
||||
],
|
||||
"newTestsWritten": [],
|
||||
"bugsFixed": [],
|
||||
"rawOutput": "Explainability.Tests: Passed! - Failed: 0, Passed: 35, Skipped: 0, Total: 35, Duration: 327ms",
|
||||
"verdict": "pass"
|
||||
}
|
||||
Reference in New Issue
Block a user