Track YAML 1.2.2 spec coverage with a single visible scoreboard. Add every Chapter 2 example from the YAML 1.2.2 spec as a Pester test. Tests for unsupported features start as -Skip and get unskipped as the feature lands via the linked follow-up issues.
Request
Add tests/Spec-1.2.2.Tests.ps1 with one It per Chapter 2 example. Each test name includes the example number and title (e.g. Example 2.4 - Sequence of Mappings). Tests for examples that already pass should run; tests for unsupported examples are marked -Skip with a comment referencing the tracking issue.
Scoreboard
| # |
Title |
Status |
Tracked by |
| 2.1 |
Sequence of Scalars |
β
supported |
β |
| 2.2 |
Mapping Scalars to Scalars |
β
supported |
β |
| 2.3 |
Mapping Scalars to Sequences |
β
supported |
β |
| 2.4 |
Sequence of Mappings |
β
supported |
β |
| 2.5 |
Sequence of Sequences (flow) |
β deferred |
#7 |
| 2.6 |
Mapping of Mappings (flow) |
β deferred |
#27 |
| 2.7 |
Two Documents in a Stream |
β deferred |
#21 |
| 2.8 |
Play by Play Feed (multi-doc) |
β deferred |
#21 |
| 2.9 |
Single Document with Two Comments |
β
supported |
β |
| 2.10 |
Anchors and Aliases |
β deferred |
#22 |
| 2.11 |
Mapping between Sequences (? key) |
β deferred |
#25 |
| 2.12 |
Compact Nested Mapping |
β οΈ verify |
β |
| 2.13 |
Literal block scalar |
β deferred |
#8 |
| 2.14 |
Folded block scalar |
β deferred |
#8 |
| 2.15 |
Folded β more-indented lines |
β deferred |
#8 |
| 2.16 |
Indentation determines scope |
β deferred |
#8 |
| 2.17 |
Quoted Scalars |
β
supported |
β |
| 2.18 |
Multi-line Flow Scalars |
β deferred |
#8 |
| 2.19 |
Integers (octal, hex) |
β deferred |
#26 |
| 2.20 |
Floating Point (.inf, .nan) |
β deferred |
#26 |
| 2.21 |
Miscellaneous |
β
supported |
β |
| 2.22 |
Timestamps |
β deferred |
#23 |
| 2.23 |
Various Explicit Tags |
β deferred |
#24 |
| 2.24 |
Global Tags |
β deferred |
#24 |
| 2.25 |
Unordered Sets (!!set) |
β deferred |
#24 |
| 2.26 |
Ordered Mappings (!!omap) |
β deferred |
#24 |
| 2.27 |
Invoice (full-length) |
β deferred |
depends on #22, #24, #8 |
| 2.28 |
Log File (multi-doc) |
β deferred |
depends on #21, #8 |
Acceptance criteria
tests/Spec-1.2.2.Tests.ps1 exists and contains all 28 Chapter 2 examples
- Tests for β
rows pass without
-Skip
- Tests for β rows are present but
-Skip-ped, each with a comment linking to the tracking issue
- README references the spec test file as the source of truth for coverage
Technical decisions
- Use Pester
-Skip (not -ForEach filtering) so the test report shows the full surface and skipped count.
- Each
It block embeds the spec YAML verbatim as a here-string and asserts the resulting object equals the canonical JSON shown in the spec.
- The harness lives separately from
ConvertFrom-Yaml.Tests.ps1 / ConvertTo-Yaml.Tests.ps1 so spec tracking does not entangle behavior tests.
Implementation plan
Track YAML 1.2.2 spec coverage with a single visible scoreboard. Add every Chapter 2 example from the YAML 1.2.2 spec as a Pester test. Tests for unsupported features start as
-Skipand get unskipped as the feature lands via the linked follow-up issues.Request
Add
tests/Spec-1.2.2.Tests.ps1with oneItper Chapter 2 example. Each test name includes the example number and title (e.g.Example 2.4 - Sequence of Mappings). Tests for examples that already pass should run; tests for unsupported examples are marked-Skipwith a comment referencing the tracking issue.Scoreboard
?key).inf,.nan)!!set)!!omap)Acceptance criteria
tests/Spec-1.2.2.Tests.ps1exists and contains all 28 Chapter 2 examples-Skip-Skip-ped, each with a comment linking to the tracking issueTechnical decisions
-Skip(not-ForEachfiltering) so the test report shows the full surface and skipped count.Itblock embeds the spec YAML verbatim as a here-string and asserts the resulting object equals the canonical JSON shown in the spec.ConvertFrom-Yaml.Tests.ps1/ConvertTo-Yaml.Tests.ps1so spec tracking does not entangle behavior tests.Implementation plan
tests/Spec-1.2.2.Tests.ps1skeleton with Describe per section (2.1 Collections, 2.2 Structures, 2.3 Scalars, 2.4 Tags, 2.5 Full Length Example)Itblocks for examples 2.1β2.4, 2.9, 2.17, 2.21 (currently passing)It -Skipblocks for the remaining examples, each with a TODO comment referencing the tracking issue