Skip to content

Round-trip harness reports a vacuous pass when a spec carries no metadata #683

Description

@nathanacurtis

Problem

The round-trip harness reports a pass when it has nothing to check. Its configuration-mismatch comparison returns "no mismatch" when a spec carries no recorded conventions or settings at all, which is indistinguishable in the output from a spec whose conventions matched.

A spec authored by hand, or one written by a catalogue run that records its facts once in a separate file, has no per-spec conventions block. Round-tripping it therefore reads as a clean pass while the check that would have caught a convention drift never ran.

Potential solution(s)

  • Distinguish "nothing to compare" from "compared and matched", and report the first as a skip rather than a pass
  • Name which specs were skipped and why, so a run of all skips cannot read as a run of all passes
  • Where the run's facts live in a sibling metadata file, load them before comparing rather than treating their absence as agreement

Acceptance criteria

  • A spec with no recorded conventions or settings is reported as skipped, not passed
  • The run names every spec it skipped and the reason
  • A run whose every spec was skipped does not report overall success
  • A spec whose facts are recoverable from a sibling run-metadata file is compared rather than skipped

Case data

  • Workspace: specs-testing
  • Territory: testing
  • Size: s

Notes

This survives #669, which fixes the product's fallback for a spec carrying no metadata. The harness would still report a vacuous pass for any spec that legitimately carries none.

Related observation worth folding in: a spec copied away from the sibling file holding its run facts loses the naming convention a render needs, and render then fails to resolve instance elements for a reason unconnected to whatever is being tested. A harness that loads the sibling facts would not produce that false signal.


Implementation details are tracked internally.

Activity

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

Metadata

Metadata

Assignees

Labels

testingspecs-testing parity validation

Type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions