Skip to content

Conversation

@thijsoo
Copy link
Contributor

@thijsoo thijsoo commented Dec 8, 2025

Context

  • We want to add unit and integration tests.

Summary

This PR can be summarized in the following changelog entry:

  • Adds tests for the schema enhancers.

Relevant technical choices:

Test instructions

Test instructions for the acceptance test before the PR gets merged

This PR can be acceptance tested by following these steps:

  • N/A

Relevant test scenarios

  • Changes should be tested with the browser console open
  • Changes should be tested on different posts/pages/taxonomies/custom post types/custom taxonomies
  • Changes should be tested on different editors (Default Block/Gutenberg/Classic/Elementor/other)
  • Changes should be tested on different browsers
  • Changes should be tested on multisite

Test instructions for QA when the code is in the RC

  • QA should use the same steps as above.

QA can test this PR by following these steps:

Impact check

This PR affects the following parts of the plugin, which may require extra testing:

Other environments

  • This PR also affects Shopify. I have added a changelog entry starting with [shopify-seo], added test instructions for Shopify and attached the Shopify label to this PR.

Documentation

  • I have written documentation for this change. For example, comments in the Relevant technical choices, comments in the code, documentation on Confluence / shared Google Drive / Yoast developer portal, or other.

Quality assurance

  • I have tested this code to the best of my abilities.
  • During testing, I had activated all plugins that Yoast SEO provides integrations for.
  • I have added unit tests to verify the code works as intended.
  • If any part of the code is behind a feature flag, my test instructions also cover cases where the feature flag is switched off.
  • I have written this PR in accordance with my team's definition of done.
  • I have checked that the base branch is correctly set.
  • I have ran grunt build:images and commited the results, if my PR introduces new images or SVGs.

Innovation

  • No innovation project is applicable for this PR.
  • This PR falls under an innovation project. I have attached the innovation label.
  • I have added my hours to the WBSO document.

Fixes #

thijsoo and others added 4 commits December 8, 2025 09:44
Add comprehensive unit tests for Abstract_Schema_Enhancer and Schema_Enhancement_Factory classes:

- Abstract_Schema_Enhancer: Tests trim_content_to_max_length method with various scenarios including word boundary breaking, ellipsis addition, and edge cases
- Schema_Enhancement_Factory: Tests constructor initialization and get_enhancer method for Article and Person types, including multiple type arrays

Tests follow Yoast patterns with separate files per method and abstract base classes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Fix undefined variable bug where the code was checking $entity['jobTitle']
instead of $schema_data['jobTitle'] on line 64. This caused the isset()
check to always fail, resulting in existing jobTitle values being
incorrectly overridden.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Extract the Concrete_Schema_Enhancer_For_Testing test helper class from
Abstract_Abstract_Schema_Enhancer_Test.php into its own file for better
organization and reusability.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Apply code formatting standards to Get_Enhancer_Test.php including proper
spacing and brace alignment.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@thijsoo thijsoo added this to the feature/schema-aggregation milestone Dec 8, 2025
@thijsoo thijsoo added the changelog: non-user-facing Needs to be included in the 'Non-userfacing' category in the changelog label Dec 8, 2025
@coveralls
Copy link

Pull Request Test Coverage Report for Build 0ebb2cab2b37e439f87c5bebeb119a774c319991

Details

  • 0 of 1 (0.0%) changed or added relevant line in 1 file are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.5%) to 51.928%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/schema-aggregator/application/enhancement/person-schema-enhancer.php 0 1 0.0%
Totals Coverage Status
Change from base Build ad4f5d1decd5ba72026241af5b5f9afbe1d92e93: -0.5%
Covered Lines: 31887
Relevant Lines: 61801

💛 - Coveralls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog: non-user-facing Needs to be included in the 'Non-userfacing' category in the changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants