Skip to content

Cover WooCommerce duplicate address semantics#325

Merged
adamziel merged 1 commit into
trunkfrom
codex/woocommerce-address-validator
May 18, 2026
Merged

Cover WooCommerce duplicate address semantics#325
adamziel merged 1 commit into
trunkfrom
codex/woocommerce-address-validator

Conversation

@adamziel
Copy link
Copy Markdown
Contributor

What it does

Adds focused WooCommerce HPOS plugin-validator coverage for duplicate address types on the same order. The test now models both branches independently adding a billing address for order 20 and verifies the merged state is held for review as plugin-woocommerce-hpos-duplicate-address-type.

Rationale

Generic SQLite merging can preserve all three rows because their IDs differ, but WooCommerce semantics expect one address per order_id + address_type. This is exactly the kind of plugin-owned invariant ForkPress needs validators to catch instead of auto-accepting as coherent.

Implementation

The WooCommerce HPOS test validator now groups wp_wc_order_addresses by order_id and address_type, skips missing-order cases already covered by existing checks, and emits a plugin conflict with structured logical identity:

{"plugin":"woocommerce","kind":"order_address_type","order_id":20,"address_type":"billing"}

The regression asserts the audit payload includes the base, source-created, and target-created address candidates.

Testing instructions

Ran locally after rebasing onto current origin/trunk:

php -l tests/cow/plugin_validator.php
make test-cow-plugin-validator
git diff --check

make test-cow-plugin-validator passed with 423 assertions.

@adamziel adamziel marked this pull request as ready for review May 18, 2026 11:51
@adamziel adamziel force-pushed the codex/woocommerce-address-validator branch from 128fd61 to 1d6a0e2 Compare May 18, 2026 12:02
@adamziel
Copy link
Copy Markdown
Contributor Author

Rebased onto current trunk after #324. Local verification after rebase:\n\n- php -l tests/cow/plugin_validator.php\n- make test-cow-plugin-validator (423 assertions)

@adamziel adamziel force-pushed the codex/woocommerce-address-validator branch from 1d6a0e2 to d9bc667 Compare May 18, 2026 12:06
@adamziel adamziel merged commit d8cde8e into trunk May 18, 2026
@adamziel adamziel mentioned this pull request May 18, 2026
adamziel added a commit that referenced this pull request May 18, 2026
## Release `v0.1.35`

Version bump and release metadata update for `v0.1.35`.

**Changelog draft:**
* Extend merge revalidation and WordPress semantic guards
([#313](#313))
* Add Events Calendar-shaped merge smoke coverage
([#318](#318))
* Extend semantic E2E with Site Editor objects
([#317](#317))
* Add thin SSH remote clone command
([#315](#315))
* Update release gate evidence for v0.1.34
([#319](#319))
* Guard plugin children behind logical identity collisions
([#320](#320))
* Hold case-insensitive upload path collisions
([#322](#322))
* Cover scoped crash recovery
([#323](#323))
* Hold malformed attachment metadata shapes
([#324](#324))
* Cover thin remote clone branch metadata
([#326](#326))
* Cover source-added trigger view dependencies
([#321](#321))
* Cover WooCommerce duplicate address semantics
([#325](#325))
* Cover Events Calendar organizer validator semantics
([#327](#327))
* Cover Elementor widget media validator semantics
([#328](#328))
* Reject duplicate attachment upload metadata rows
([#329](#329))
* Cover existing branch Git update crash recovery
([#330](#330))
* Mark WordPress media repairs review-only
([#331](#331))
* Cover backup attachment metadata drift
([#332](#332))
* Limit release verification for COW-only PRs
([#335](#335))
* Batch merge reliability roadmap coverage
([#336](#336))
* Cover WordPress upload MIME drift
([#333](#333))
* Add branch merge history commands
([#334](#334))
* Show restored stale-audit reviews
([#337](#337))
* Cover Yoast duplicate indexable permalinks
([#338](#338))
* Cover Yoast indexable hierarchy drift
([#339](#339))
* Cover revision parent semantic drift
([#340](#340))
* Expose merge history in branch switcher
([#341](#341))
* Cover ACF relationship validator drift
([#342](#342))
* Show merge history on branch admin page
([#343](#343))
* Drill into conflicts from branch admin history
([#344](#344))
* Expose branch tree on admin page
([#345](#345))
* Resolve conflicts from branch admin page
([#346](#346))
* Document conflict review workflow
([#347](#347))

**Full changelog:**
v0.1.34...release/v0.1.35

## Next steps

1. **Review** the changes in this pull request.
2. **Push** any additional edits to this branch (`release/v0.1.35`).
3. **Merge** this pull request to publish `v0.1.35`.

Merging will automatically build ForkPress binaries, create a GitHub
release, and update the Homebrew formula.

Co-authored-by: Codex <codex@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants