Skip to content

Commit 5b010e0

Browse files
committed
test(lint): restore the ObjectForm half of the parse-gate mixed-spelling fixture
The `parseable` array in `validate-react-page-props.test.ts` is the FALSE-POSITIVE CONTROL for the syntax gate: every entry asserts only `not.toContain(REACT_PAGE_SOURCE_UNPARSEABLE)`, so it grades the PARSE and nothing else. One entry carries an `ObjectForm` and a `ListView` in a single fragment. Retiring the `ListView` binding aliases re-spelled BOTH halves to `data={{ provider: "object", object: "a" }}`, but only the `ListView` half is in that retirement's scope: `ObjectForm` binds by its own props and carries the shared `OBJECT_NAME` overlay (`packages/spec/src/ui/react-blocks.ts`, the `REACT_BLOCKS` entry for `ObjectForm`), which is `objectName`, required. It has no `data` prop at all — neither in its `interactions` nor in its `dataProps`. The fixture therefore spelled a prop the contract does not carry. Because the array grades parseability only, both spellings parse and CI stayed green: no gate in the repo could see it. Restore the `ObjectForm` half to `objectName="a"` and keep the `ListView` half canonical, which is what the entry was — a genuine MIXED-SPELLING fragment, and a stronger parse fixture than either uniform spelling. Measured over whole file text (never line-oriented, so a hard-wrapped occurrence cannot hide), across the full diff versus the merge base: the `objectName=` prop sites attributed to `ObjectForm` are 16 -> 16 and to `ObjectChart` 36 -> 36 — both unchanged — and `ListView` is the only tag that gains the canonical `data` spelling. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016N6xmWt5hYm94ffVEwGH8x
1 parent 4ee841b commit 5b010e0

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

packages/lint/src/validate-react-page-props.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1569,7 +1569,7 @@ describe('an unparseable react source is reported, not scored clean (#10653)', (
15691569
'const Page = (): JSX.Element => <ObjectForm objectName="a" />;\nexport default Page;',
15701570
'const id = <T,>(x: T): T => x;\nfunction Page(){ return <ObjectForm objectName="a" />; }',
15711571
'interface Props { a: number }\nexport default function Page(p: Props){ return <ObjectForm objectName="a" />; }',
1572-
'function Page(){ return <><ObjectForm data={{ provider: "object", object: "a" }} /><ListView data={{ provider: "object", object: "a" }} /></>; }',
1572+
'function Page(){ return <><ObjectForm objectName="a" /><ListView data={{ provider: "object", object: "a" }} /></>; }',
15731573
'function Page(){ return <ObjectForm objectName="a" {...rest} />; }',
15741574
];
15751575
for (const source of parseable) {

0 commit comments

Comments
 (0)