Skip to content

Fix form control value and label contracts; cover Password guidance - #60

Merged
joshbruce merged 3 commits into
mainfrom
cp-joshbruce-control-contract-fixes
Oct 15, 2026
Merged

joshbruce merged 3 commits into
mainfrom
cp-joshbruce-control-contract-fixes

Conversation

@joshbruce

Copy link
Copy Markdown
Member

Resolve the remaining form-control contract regressions and guidance coverage gap against current main, with each issue isolated in its own commit:

Update directly related README guidance. Caller-owned escaping and native wrapperProps deprecation/containerProps behavior are unchanged.

Validation on PHP 8.5.2:

  • composer test -- --filter 'ControlContractTest|TextInputTest|EmailInputTest|ElementBaselineTest' — passed (60 tests, 396 assertions).
  • composer test -- --filter 'ControlContractTest|EmailInputTest' — passed (65 tests, 545 assertions).
  • composer test -- --filter ControlGuidanceTest — passed (88 tests, 1,578 assertions).
  • composer production — passed: PHPCS, PHPStan (no errors), PHPUnit (267 tests, 2,529 assertions).
  • git diff --check — passed.

The added regressions reproduced the original empty-value failures and both default/custom EmailInput label failures before their runtime fixes.

List of issues fixed

Fixes #54
Fixes #57
Fixes #56

joshbruce and others added 3 commits October 15, 2026 13:07
Exclude caller value declarations even when the initial value is empty; preserve Element empty-property semantics.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Match other text-entry controls and add DOM relationship coverage across applicable controls with default and custom IDs.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Exercise all existing guidance cases using Password's constructor without an initial value.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@joshbruce joshbruce mentioned this pull request Oct 15, 2026
@joshbruce
joshbruce merged commit 01533cf into main Oct 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant