Skip to content

Tests: Fix ineffective assertions in the block renderer controller tests - #13529

Closed
Soean wants to merge 1 commit into
WordPress:trunkfrom
Soean:tests/block-renderer-schema-assertions
Closed

Soean wants to merge 1 commit into
WordPress:trunkfrom
Soean:tests/block-renderer-schema-assertions

Conversation

@Soean

@Soean Soean commented Sep 15, 2026

Copy link
Copy Markdown
Member

REST_Block_Renderer_Controller_Test::test_get_item_schema() used $this->arrayHasKey() rather than $this->assertArrayHasKey(). arrayHasKey() is a constraint factory, it builds an ArrayHasKey object and returns it. Called on its own the return value is discarded, no assertion is recorded, and the test passes regardless of the schema's contents.

Why the second line is not assertArrayHasKey()

WP_REST_Block_Renderer_Controller::get_item_schema() declares the rendered property as 'type' => 'string' — a plain string, not an array of types. A literal conversion to assertArrayHasKey( 'string', ... ) errors out under PHPUnit 9 with Argument #2 of PHPUnit\Framework\Assert::assertArrayHasKey() must be an array or ArrayAccess. assertSame( 'string', ... ) expresses what the original line was reaching for and matches the style of the surrounding assertions in the same method.

Follow-up to [44150]

Trac ticket: https://core.trac.wordpress.org/ticket/65819


This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.

…sts.

`REST_Block_Renderer_Controller_Test::test_get_item_schema()` called `arrayHasKey()` instead of `assertArrayHasKey()`. That method only builds a constraint object and returns it, so both lines were silently discarded and never verified anything.

The first call becomes `assertArrayHasKey()`. The second one cannot: the `rendered` property's `type` is the string `string`, not an array, and `assertArrayHasKey()` rejects a non-array haystack. It is replaced with `assertSame( 'string', ... )`, which is the assertion that was intended.
@github-actions

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Core Committers: Use this line as a base for the props when committing in SVN:

Props soean.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@lancewillett

Copy link
Copy Markdown
Member

wporg-sync pushed a commit that referenced this pull request Sep 15, 2026
Replace unused PHPUnit constraint factory calls with assertions that verify the rendered property exists and declares a string type. The previous calls discarded their constraint objects without performing either check.

Developed in: #13529

Props soean.
See #65819.


git-svn-id: https://develop.svn.wordpress.org/trunk@63623 602fd350-edb4-49c9-b593-d223f7449a82
wporg-sync pushed a commit to WordPress/WordPress that referenced this pull request Sep 15, 2026
Replace unused PHPUnit constraint factory calls with assertions that verify the rendered property exists and declares a string type. The previous calls discarded their constraint objects without performing either check.

Developed in: WordPress/wordpress-develop#13529

Props soean.
See #65819.

Built from https://develop.svn.wordpress.org/trunk@63623


git-svn-id: http://core.svn.wordpress.org/trunk@62799 1a063a9b-81f0-0310-95a4-ce76da25c4cd
@Soean
Soean deleted the tests/block-renderer-schema-assertions branch September 15, 2026 16:17
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