test(#3239): reroute package-legitimacy-gate table parsers onto the ADR-2143 seam (#3977)

* test(#3239): reroute package-legitimacy-gate table parsers onto the ADR-2143 seam

tests/package-legitimacy-gate.test.cjs hand-rolled two markdown-table
parsers that duplicated src/markdown-table.cts (ADR-2143). The local
.split('|') mis-split escaped-pipe cells, and the local
.filter(cells => cells.length === headers.length) silently dropped
ragged rows instead of failing loudly — a legitimacy gate silently
skipping a malformed row it could not fully read.

Both call sites now delegate to the seam's parseMarkdownTable (via
gsd-core/bin/lib/markdown-table.cjs), addressing cells by column name.
The multi-table grouping loop (no ADR-2143 equivalent) stays local but
now delegates each group's actual parse to the seam and throws loudly
on a malformed group instead of filtering it out silently.

Adds fixtures locking the two named divergences (ragged row -> typed
error, escaped-pipe cell -> correct single-cell split) plus the
grouping helper's happy-path and fail-loud behavior.

The tests/**/*.cjs fence question (issue proposed-work item 3) was
already decided and shipped by #3951 Rung B: local/no-adhoc-markdown-parsing
is registered as 'error' on tests/**/*.cjs in eslint.config.mjs and the
rule's own filename gate matches it. No further fence decision needed.

* chore(#3239): changeset fragment (pr number backfilled after PR creation)

* chore(#3239): backfill changeset PR number (3977)

---------

Co-authored-by: sim <sim@local>
This commit is contained in:
Tom Boucher
2026-08-28 08:07:24 -04:00
committed by GitHub
parent 355c943b08
commit 7adcb730e5
2 changed files with 90 additions and 40 deletions

View File

@@ -0,0 +1,5 @@
---
type: Fixed
pr: 3977
---
**Package-legitimacy-gate tests no longer silently drop malformed table rows.** The test suite's markdown-table parsing now reuses the ADR-2143 seam instead of two hand-rolled copies, so a ragged row or an escaped-pipe cell fails loudly instead of being silently mis-parsed. (#3239)