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/entity-command/features/menu.feature
Feature: Manage WordPress menus

  Background:
    Given a WP install

  Scenario: Menu CRUD operations

    When I run `wp menu create "My Menu"`
    And I run `wp menu list --fields=name,slug`
    Then STDOUT should be a table containing rows:
      | name       | slug       |
      | My Menu    | my-menu    |

    When I run `wp menu delete "My Menu"`
    Then STDOUT should be:
      """
      Deleted menu 'My Menu'.
      Success: Deleted 1 of 1 menus.
      """
    And the return code should be 0

    When I run `wp menu list --format=count`
    Then STDOUT should be:
      """
      0
      """

    When I run `wp menu create "First Menu"`
    And I run `wp menu create "Second Menu"`
    And I run `wp menu list --fields=name,slug`
    Then STDOUT should be a table containing rows:
      | name           | slug           |
      | First Menu     | first-menu     |
      | Second Menu    | second-menu    |

    When I run `wp menu delete "First Menu" "Second Menu"`
    Then STDOUT should be:
      """
      Deleted menu 'First Menu'.
      Deleted menu 'Second Menu'.
      Success: Deleted 2 of 2 menus.
      """
    And the return code should be 0

    When I run `wp menu list --format=count`
    Then STDOUT should be:
      """
      0
      """

    When I run `wp menu create "First Menu"`
    And I run `wp menu list --format=ids`
    Then STDOUT should be:
      """
      5
      """

  Scenario: Errors when deleting menus
    When I try `wp menu delete "Your menu"`
    Then STDERR should be:
      """
      Warning: Couldn't delete menu 'Your menu'.
      Error: No menus deleted.
      """
    And the return code should be 1

    When I run `wp menu create "My Menu"`
    And I run `wp menu list --fields=name,slug`
    Then STDOUT should be a table containing rows:
      | name       | slug       |
      | My Menu    | my-menu    |

    When I try `wp menu delete "My Menu" "Your menu"`
    Then STDERR should be:
      """
      Warning: Couldn't delete menu 'Your menu'.
      Error: Only deleted 1 of 2 menus.
      """
    And the return code should be 1