dist-archive-command/features/profile.feature
Copilot 7c72b49ecd
Some checks failed
Manage Labels / manage-labels (push) Has been cancelled
Regenerate README file / regenerate-readme (push) Has been cancelled
Code Quality Checks / code-quality (push) Has been cancelled
Testing / test (push) Has been cancelled
Introduce wp profile queries command (#207)
Co-authored-by: swissspidy <841956+swissspidy@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Pascal Birchler <pascalb@google.com>
2026-04-14 20:00:57 +02:00

68 lines
2.8 KiB
Gherkin

Feature: Basic profile usage
Scenario: Assert available commands
Given a WP install
When I run `wp profile`
Then STDOUT should be:
"""
usage: wp profile eval <php-code> [--hook[=<hook>]] [--fields=<fields>] [--format=<format>] [--order=<order>] [--orderby=<fields>]
or: wp profile eval-file <file> [--hook[=<hook>]] [--fields=<fields>] [--format=<format>] [--order=<order>] [--orderby=<fields>]
or: wp profile hook [<hook>] [--all] [--spotlight] [--url=<url>] [--fields=<fields>] [--format=<format>] [--order=<order>] [--orderby=<fields>] [--search=<pattern>]
or: wp profile queries [--url=<url>] [--hook=<hook>] [--callback=<callback>] [--time_threshold=<seconds>] [--fields=<fields>] [--format=<format>] [--order=<order>] [--orderby=<fields>]
or: wp profile stage [<stage>] [--all] [--spotlight] [--url=<url>] [--fields=<fields>] [--format=<format>] [--order=<order>] [--orderby=<fields>]
See 'wp help profile <command>' for more information on a specific command.
"""
# Skip when object cache is used because sqlite-object-cache fails during manual wp core install
# due to missing wp_options table during cron scheduling.
@skip-object-cache
Scenario: Error when SAVEQUERIES is defined to false
Given an empty directory
And WP files
And a database
And a extra-php file:
"""
define( 'SAVEQUERIES', false );
"""
And I run `wp core config {CORE_CONFIG_SETTINGS} --skip-check --extra-php < extra-php`
When I run `wp core install --url='https://localhost' --title='Test' --admin_user=wpcli --admin_email=admin@example.com --admin_password=1`
Then the return code should be 0
When I try `wp profile stage`
Then STDERR should be:
"""
Error: 'SAVEQUERIES' is defined as false, and must be true. Please check your wp-config.php
"""
Scenario: Profile a hook without any callbacks
Given a WP install
When I run `wp profile hook get_search_form --fields=callback,time`
Then STDOUT should be a table containing rows:
| callback | time |
| total (0) | |
And STDERR should be empty
Scenario: Trailingslash provided URL to avoid canonical redirect
Given a WP install
When I run `wp profile hook get_search_form --url=example.com --fields=callback,time`
Then STDERR should be empty
And STDOUT should be a table containing rows:
| callback | time |
| total (0) | |
Scenario: Don't include 'total' cell when the name column is omitted
Given a WP install
When I run `wp profile eval 'wp_cache_get( "foo" );' --fields=cache_hits,cache_misses`
Then STDOUT should be a table containing rows:
| cache_hits | cache_misses |
| 0 | 1 |
And STDOUT should not contain:
"""
total
"""