Repository navigation
Conversation
…pt block. See #66543.
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. Props Bot commandsYou can trigger Props Bot actions by commenting on this PR:
|
There was a problem hiding this comment.
🟡 Changes recommended
The new excerpt test incorrectly expects script contents to be removed, but wp_kses_post() retains them, causing the assertion to fail against the unchanged renderer.
1 open issue
What changed in this PR
Adds unit tests for server-side rendering of the Post Excerpt block and its helper functions, without changing production behavior.
Changes:
- Covers excerpt generation, length limits, and read-more link rendering and sanitization.
- Checks temporary filter cleanup and attribute-driven CSS classes.
- Verifies the excerpt-length helper and block registration callback.
| File | Description |
|---|---|
tests/phpunit/tests/blocks/renderPostExcerpt.php |
Adds fixtures and tests for Post Excerpt rendering, filters, classes, and registration. |
Review effort: Balanced
…k test. See #66543.
huzaifaalmesbah
left a comment
There was a problem hiding this comment.
Thanks for working on this, @hmbashar! I really appreciate you taking the time to write comprehensive server-side rendering unit tests for the Post Excerpt block (render_block_core_post_excerpt(), block_core_post_excerpt_excerpt_length(), and registration). Local PHPUnit suite (23 tests, 30 assertions) and PHPCS/ESLint both pass cleanly.
I left a few small notes inline.
AI Review: Gemini 3.8 Flash
…on test. See #66543.

Adds unit tests for
render_block_core_post_excerpt(),block_core_post_excerpt_excerpt_length()andregister_block_core_post_excerpt()insrc/wp-includes/blocks/post-excerpt.php, which were not referenced by any test. No behavior is changed. This is the second part of the ticket: the Post Date block is covered in a separate pull request.The new test class
tests/phpunit/tests/blocks/renderPostExcerpt.php(23 tests) covers:excerptLengthof the block for both (a text that is shorter is not changed).wp-block-post-excerpt__more-text), in the same paragraph withshowMoreOnNewLinefalse (without a space for an empty excerpt), with its text cleaned bywp_kses_post()and its URL escaped.excerpt_morefilter is used for the end of the excerpt, and with a link it is replaced by nothing. The block raises the length of the excerpt to 101 words while it renders, and both filters that it adds are removed afterwards.block_core_post_excerpt_excerpt_length()returns 101.has-text-align-*,has-link-color, both together, and none for another element.Testing:
vendor/bin/phpunit --filter 'Tests_Blocks_RenderPostExcerpt::'vendor/bin/phpunit -c tests/phpunit/multisite.xml --filter 'Tests_Blocks_RenderPostExcerpt::'vendor/bin/phpcs tests/phpunit/tests/blocks/renderPostExcerpt.phpI also temporarily broke the functions (each check, the link and its text, the filters that are added and removed, the post of the excerpt, the length, the position of the link, the separator, each class and the render callback) and confirmed that a new test fails for each one.
Trac ticket: https://core.trac.wordpress.org/ticket/66543
Use of AI Tools
AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Sonnet 5.5
Used for: Written with AI and manually reviewed by me.
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.