Skip to content

Tests: the generated-surface snapshot covers the value objects the Generators tests declare, not only the probes #131

Closed

Description

@CaffeinatedCoder

GeneratedSurfaceTests (since 2026-10-13) snapshots the generated public surface of the value objects in CodoMetis.TypeKit.Generators.Probes, 43 types, into GeneratedSurface.verified.txt. The value objects that CodoMetis.TypeKit.Generators.Tests declares for itself are outside it. Among them is OverParsedShape (ParsingTests.cs), the shape behind 2.1.0's prerelease regression: a wrapped Parse whose result converts implicitly to the wrapped type, where the value object lost IParsable, Parse and TryParse, a consumer's call failed with CS0117, and ApiCompat passed (fixed in daafd89). Only its behaviour test holds it now; a sibling shape that loses a member would pass unnoticed.

The roadmap still lists this under its 2.2.0 section ("The generated-surface snapshot under Generators below") and under "Gaps, in any 2.x", Generators, as if no snapshot existed.

Proposal

Render the value objects of the Generators test assembly too, beside the probes, so a generator change that removes a member from any of them is a diff in GeneratedSurface.verified.txt.

Done when

  • The snapshot lists the Generators test assembly's value objects and closed sets, and its count floor covers them.
  • Reverting daafd89's ConversionKind.Implicit fails GeneratedSurfaceTests as well as ParsingTests (verify-the-guard).
  • The roadmap's two lines about the snapshot are removed.

Activity

  1. added this to the 2.3.0 milestone on Oct 29, 2026
  2. added
    testsAdds or changes tests only (tests, probes, harnesses); no library code
    package/generatorsAffects CodoMetis.TypeKit.Generators
    area/value-objectsValue-object contracts and what the aspects generate for them
    on Oct 29, 2026
  3. CaffeinatedCoder commented on Oct 29, 2026

    @CaffeinatedCoder
    OwnerAuthor

    Done in #133, merged into release/2.3.0 (0221022). It ships in 2.3.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/value-objectsValue-object contracts and what the aspects generate for thempackage/generatorsAffects CodoMetis.TypeKit.GeneratorstestsAdds or changes tests only (tests, probes, harnesses); no library code

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions