@@ -33,7 +33,8 @@ BeforeAll {
3333 - CompareJson `
3434 - CompareEvents `
3535 - CompareOutYaml `
36- - CompareEmitRoundTrip
36+ - CompareEmitYaml `
37+ - CompareSelfRoundTrip
3738 )
3839 $emptySuitePath = Join-Path $TestDrive ' empty-suite'
3940 $null = New-Item - Path $emptySuitePath - ItemType Directory
@@ -235,19 +236,57 @@ ship-to:
235236 It ' accounts for out.yaml representation comparisons' {
236237 @ ($suiteResults | Where-Object OutYamlResult -EQ ' Pass' ).Count | Should - Be 241
237238 @ ($suiteResults | Where-Object OutYamlResult -EQ ' PolicyDifference' ).Count |
238- Should - Be 0
239+ Should - Be 1
239240 @ ($suiteResults | Where-Object OutYamlResult -EQ ' Fail' ).Count | Should - Be 0
240241 @ ($suiteResults | Where-Object OutYamlResult -EQ ' NotApplicable' ).Count |
241- Should - Be 161
242+ Should - Be 160
243+ $outPolicy = $suiteResults | Where-Object OutYamlResult -EQ ' PolicyDifference'
244+ $outPolicy.Case | Should - Be ' X38W'
245+ $outPolicy.OutYamlReason | Should - Be ' RepresentationMappingKeyUniqueness'
246+ }
247+
248+ It ' validates the 55 official emit.yaml fixtures separately' {
249+ @ ($suiteResults | Where-Object HasEmitYaml).Count | Should - Be 55
250+ @ ($suiteResults | Where-Object EmitYamlResult -EQ ' Pass' ).Count | Should - Be 55
251+ @ ($suiteResults | Where-Object EmitYamlResult -EQ ' PolicyDifference' ).Count |
252+ Should - Be 0
253+ @ ($suiteResults | Where-Object EmitYamlResult -EQ ' Fail' ).Count | Should - Be 0
254+ @ ($suiteResults | Where-Object EmitYamlResult -EQ ' NotApplicable' ).Count |
255+ Should - Be 347
256+ }
257+
258+ It ' reads official emit.yaml content rather than counting its presence' {
259+ $mutatedSuitePath = Join-Path $TestDrive ' mutated-emit-fixture'
260+ $null = New-Item - Path $mutatedSuitePath - ItemType Directory - Force
261+ Copy-Item - LiteralPath (Join-Path $suiteDataPath ' 2LFX' ) `
262+ - Destination $mutatedSuitePath - Recurse
263+ ' --- altered' | Set-Content `
264+ - LiteralPath (Join-Path $mutatedSuitePath ' 2LFX\emit.yaml' ) `
265+ - Encoding utf8NoBOM
266+
267+ $mutatedResult = & $runnerPath - Path $mutatedSuitePath - CompareEmitYaml
268+
269+ $mutatedResult.EmitYamlResult | Should - Be ' Fail'
270+ $mutatedResult.EmitYamlReason | Should - Be ' EmitYamlRepresentationMismatch'
242271 }
243272
244- It ' accounts for emitter and round-trip comparisons' {
245- @ ($suiteResults | Where-Object EmitResult -EQ ' Pass' ).Count | Should - Be 306
246- @ ($suiteResults | Where-Object EmitResult -EQ ' PolicyDifference' ).Count |
273+ It ' accounts honestly for general module self-round-trips' {
274+ @ ($suiteResults | Where-Object SelfRoundTripResult -EQ ' Pass' ).Count |
275+ Should - Be 306
276+ @ ($suiteResults | Where-Object SelfRoundTripResult -EQ ' PolicyDifference' ).Count |
277+ Should - Be 2
278+ @ ($suiteResults | Where-Object SelfRoundTripResult -EQ ' Fail' ).Count |
247279 Should - Be 0
248- @ ($suiteResults | Where-Object EmitResult -EQ ' Fail' ).Count | Should - Be 0
249- @ ($suiteResults | Where-Object EmitResult -EQ ' NotApplicable' ).Count |
250- Should - Be 96
280+ @ ($suiteResults | Where-Object SelfRoundTripResult -EQ ' NotApplicable' ).Count |
281+ Should - Be 94
282+ $policyResults = @ (
283+ $suiteResults |
284+ Where-Object SelfRoundTripResult -EQ ' PolicyDifference' |
285+ Sort-Object Case
286+ )
287+ @ ($policyResults.Case ) | Should - Be @ (' 2JQS' , ' X38W' )
288+ @ ($policyResults.SelfRoundTripReason | Select-Object - Unique) |
289+ Should - Be @ (' RepresentationMappingKeyUniqueness' )
251290 }
252291
253292 It ' keeps the previously failing multi-document JSON cases green' {
0 commit comments