Skip to content

Tests: Add unit test coverage for WP_Metadata_Lazyloader - #14175

Open
huzaifaalmesbah wants to merge 1 commit into
WordPress:trunkfrom
huzaifaalmesbah:tests/metadata-lazyloader
Open

huzaifaalmesbah wants to merge 1 commit into
WordPress:trunkfrom
huzaifaalmesbah:tests/metadata-lazyloader

Conversation

@huzaifaalmesbah

Copy link
Copy Markdown
Member

Description

Adds a test class for WP_Metadata_Lazyloader, which was only exercised indirectly through the term and comment meta lazy-loading functions. Using a fresh instance, the tests cover queue_objects() and reset_queue() for each supported object type and for invalid types, the metadata filter that is hooked and unhooked, the metadata_lazyloader_queued_objects action arguments, and lazyload_meta_callback(): it primes the cache of every queued object plus the requested one, returns the filtered value unchanged, empties the queue, and does nothing for types without queued objects. The deprecated lazyload_term_meta() and lazyload_comment_meta() methods are covered as well.

Metadata caches primed by fixture creation are cleared in set_up() so each assertion observes the lazy-loader itself.

This is a test-only change; no production code is modified.

Testing Instructions

  1. Run the tests on single site:
    npm run test:php -- --filter 'Tests_Meta_wpMetadataLazyloader'
  2. Run them on multisite:
    npm run test:php -- --filter 'Tests_Meta_wpMetadataLazyloader' -c tests/phpunit/multisite.xml
  3. Run them in random order:
    npm run test:php -- --filter 'Tests_Meta_wpMetadataLazyloader' --order-by=random
  4. Run the whole group to confirm nothing else is affected:
    npm run test:php -- --group meta
  5. Run PHPCS on the test file:
    node ./tools/local-env/scripts/docker.js run --rm php ./vendor/bin/phpcs tests/phpunit/tests/meta/wpMetadataLazyloader.php

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

Use of AI Tools

AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 5.5
Used for: Brainstorming edge-case scenarios and drafting test boilerplate; test architecture, assertions, and local PHPUnit verification were written and validated by me.

@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 huzaifaalmesbah.

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

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.

1 participant