Skip to content

Commit 16a8de8

Browse files
committed
test(spec): state why the ReportChart key is arithmetic, not a second decision
Claude-Session: https://claude.ai/code/session_01KB5PFtxuy1x3dcR5gxudx6 Co-authored-by: Claude <noreply@anthropic.com>
1 parent 1b6cbe2 commit 16a8de8

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

‎packages/spec/src/ui/aria-carrier-tombstones.test.ts‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,18 @@ describe('the `aria` tombstones name only live `AriaProps` carriers (#6756)', ()
227227
// retirement registers TWO keys, `ui/ChartConfig:aria` and
228228
// `ui/ReportChart:aria`. If the extension ever stopped carrying it, a report
229229
// author would meet a bare unrecognized-key error with no upgrade in it.
230+
//
231+
// ⚠️ Read the second key as ARITHMETIC, not as scope. Exactly ONE property
232+
// on exactly ONE schema was retired; `ReportChart:aria` is not a second
233+
// decision and is not separable from the first, because there is no second
234+
// declaration to leave alone — the extension has no `aria` of its own to
235+
// keep. The build gate says so before any author does: tombstoning the one
236+
// property fails `build-schemas.ts` check (b) with *"2 key(s) were
237+
// tombstoned with no registered retirement"* naming BOTH, and stays red
238+
// until both are registered. Same shape as `shared/FieldMapping:transform`,
239+
// where one tombstone produced three keys; `RETIRED_KEYS_BY_MAJOR`'s own
240+
// docblock states the rule — registered per key, nothing radiating from the
241+
// base.
230242
const message = messageOf(ReportChartSchema.safeParse(reportChartWithAria));
231243
expect(message).toContain('`ChartConfig.aria`');
232244
expect(message).toContain('`report.blocks[].chart.aria`');

0 commit comments

Comments
 (0)