HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/local/wp/vendor/wp-cli/doctor-command/features/check-constant-definition.feature
Feature: Check the values of defined constants

  Scenario: Verify check description
    Given an empty directory

    When I run `wp doctor list --fields=name,description`
    Then STDOUT should be a table containing rows:
      | name                       | description                                                                    |
      | constant-savequeries-falsy | Confirms expected state of the SAVEQUERIES constant.                           |
      | constant-wp-debug-falsy    | Confirms expected state of the WP_DEBUG constant.                              |

  Scenario: WP_DEBUG is defined to false
    Given a WP install
    And a wp-debug-true.php file:
      """
      <?php
      define( 'WP_DEBUG', true );
      """

    When I run `wp doctor check constant-wp-debug-falsy`
    Then STDOUT should be a table containing rows:
      | name                       | status  | message                                    |
      | constant-wp-debug-falsy    | success | Constant 'WP_DEBUG' is defined falsy.      |

    When I try `wp doctor check constant-wp-debug-falsy --require=wp-debug-true.php`
    Then STDOUT should be a table containing rows:
      | name                       | status  | message                                    |
      | constant-wp-debug-falsy    | error   | Constant 'WP_DEBUG' is defined 'true' but expected to be falsy.  |
    And STDERR should contain:
      """
      Error: 1 check reports 'error'.
      """
    And the return code should be 1


  Scenario: SAVEQUERIES is defined to falsy
    Given a WP install
    And a savequeries-false.php file:
      """
      <?php
      define( 'SAVEQUERIES', false );
      """
    And a savequeries-true.php file:
      """
      <?php
      define( 'SAVEQUERIES', true );
      """

    When I run `wp doctor check constant-savequeries-falsy`
    Then STDOUT should be a table containing rows:
      | name                        | status  | message                                          |
      | constant-savequeries-falsy  | success | Constant 'SAVEQUERIES' is undefined.             |

    When I run `wp doctor check constant-savequeries-falsy --require=savequeries-false.php`
    Then STDOUT should be a table containing rows:
      | name                        | status  | message                                          |
      | constant-savequeries-falsy  | success | Constant 'SAVEQUERIES' is defined falsy.         |

    When I try `wp doctor check constant-savequeries-falsy --require=savequeries-true.php`
    Then STDOUT should be a table containing rows:
      | name                        | status  | message                                                    |
      | constant-savequeries-falsy  | error   | Constant 'SAVEQUERIES' is defined 'true' but expected to be falsy. |
    And STDERR should contain:
      """
      Error: 1 check reports 'error'.
      """
    And the return code should be 1

  Scenario: Expected constant is defined
    Given a WP install
    And a config.yml file:
      """
      constant-db-host-defined:
        class: WP_CLI\Doctor\Check\Constant_Definition
        options:
          constant: DB_HOST
          defined: true
      """

    When I run `wp doctor check constant-db-host-defined --config=config.yml`
    Then STDOUT should be a table containing rows:
      | name                     | status    | message                               |
      | constant-db-host-defined | success   | Constant 'DB_HOST' is defined.        |

  Scenario: Expected constant is missing
    Given a WP install
    And a config.yml file:
      """
      constant-foobar-true:
        class: WP_CLI\Doctor\Check\Constant_Definition
        options:
          constant: FOOBAR
          value: true
      """

    When I try `wp doctor check constant-foobar-true --config=config.yml`
    Then STDOUT should be a table containing rows:
      | name                 | status  | message                                                   |
      | constant-foobar-true | error   | Constant 'FOOBAR' is undefined but expected to be 'true'. |
    And STDERR should contain:
      """
      Error: 1 check reports 'error'.
      """
    And the return code should be 1

  Scenario: Expected constant is defined as the correct value
    Given a WP install
    And a config.yml file:
      """
      constant-foobar-true:
        class: WP_CLI\Doctor\Check\Constant_Definition
        options:
          constant: FOOBAR
          value: true
      """
    And a wp-content/mu-plugins/constant.php file:
      """
      <?php
      define( 'FOOBAR', true );
      """

    When I run `wp doctor check constant-foobar-true --config=config.yml`
    Then STDOUT should be a table containing rows:
      | name                 | status  | message                               |
      | constant-foobar-true | success | Constant 'FOOBAR' is defined 'true'.  |