mirror of
https://gh.wpcy.net/https://github.com/wp-cli/entity-command.git
synced 2026-04-26 03:21:45 +08:00
218 lines
5.4 KiB
Gherkin
218 lines
5.4 KiB
Gherkin
Feature: Manage post term
|
|
|
|
Scenario: Postterm CRUD
|
|
Given a WP install
|
|
|
|
When I run `wp post term add 1 category foo`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Added term.
|
|
"""
|
|
|
|
When I run `wp post term list 1 category --fields=name,slug,taxonomy`
|
|
Then STDOUT should be a table containing rows:
|
|
| name | slug | taxonomy |
|
|
| foo | foo | category |
|
|
|
|
When I run `wp post term add 1 category bar`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Added term.
|
|
"""
|
|
|
|
When I run `wp post term list 1 category --fields=name,slug,taxonomy`
|
|
Then STDOUT should be a table containing rows:
|
|
| name | slug | taxonomy |
|
|
| foo | foo | category |
|
|
| bar | bar | category |
|
|
|
|
When I run `wp post term list 1 category --format=ids`
|
|
Then STDOUT should be:
|
|
"""
|
|
3 2 1
|
|
"""
|
|
|
|
When I try `wp post term list 1 foo2`
|
|
Then STDERR should be:
|
|
"""
|
|
Error: Invalid taxonomy foo2.
|
|
"""
|
|
And the return code should be 1
|
|
|
|
When I run `wp post term set 1 category new`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Set term.
|
|
"""
|
|
|
|
When I run `wp post term list 1 category --fields=name,slug,taxonomy --format=count`
|
|
Then STDOUT should be:
|
|
"""
|
|
1
|
|
"""
|
|
|
|
When I run `wp post term list 1 category --field=slug`
|
|
Then STDOUT should be:
|
|
"""
|
|
new
|
|
"""
|
|
|
|
When I run `wp post term remove 1 category new`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Removed term.
|
|
"""
|
|
|
|
When I run `wp post term list 1 category --fields=name,slug,taxonomy --format=count`
|
|
Then STDOUT should be:
|
|
"""
|
|
0
|
|
"""
|
|
|
|
Scenario: Multiple post term
|
|
Given a WP install
|
|
|
|
When I run `wp post term add 1 category apple`
|
|
And I run `wp post term add 1 category apple`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Added term.
|
|
"""
|
|
|
|
When I run `wp post term set 1 category apple1 apple2`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Set terms.
|
|
"""
|
|
|
|
When I run `wp post term list 1 category --fields=name,slug,taxonomy`
|
|
Then STDOUT should be a table containing rows:
|
|
| name | slug | taxonomy |
|
|
| apple1 | apple1 | category |
|
|
| apple2 | apple2 | category |
|
|
|
|
Scenario: Invalid Post ID
|
|
Given a WP install
|
|
|
|
When I try `wp post term add 99999 category boo`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Error: Could not find the post with ID 99999.
|
|
"""
|
|
|
|
Scenario: Postterm Add invalid tax
|
|
Given a WP install
|
|
|
|
When I try `wp post term add 1 foo2 boo`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Error: Invalid taxonomy foo2.
|
|
"""
|
|
|
|
Scenario: Add terms by term id
|
|
Given a WP install
|
|
|
|
When I run `wp term create post_tag 3 --porcelain`
|
|
Then STDOUT should be:
|
|
"""
|
|
2
|
|
"""
|
|
|
|
When I run `wp term create post_tag 4 --porcelain`
|
|
Then STDOUT should be:
|
|
"""
|
|
3
|
|
"""
|
|
|
|
When I run `wp term create post_tag 2 --porcelain`
|
|
Then STDOUT should be:
|
|
"""
|
|
4
|
|
"""
|
|
|
|
When I run `wp post term add 1 post_tag 4`
|
|
Then STDOUT should contain:
|
|
"""
|
|
Success: Added term.
|
|
"""
|
|
|
|
When I run `wp post term add 1 post_tag 2`
|
|
Then STDOUT should contain:
|
|
"""
|
|
Success: Added term.
|
|
"""
|
|
|
|
When I run `wp post term list 1 post_tag --fields=term_id,name,slug`
|
|
Then STDOUT should be a table containing rows:
|
|
| term_id | name | slug |
|
|
| 4 | 2 | 2 |
|
|
| 3 | 4 | 4 |
|
|
|
|
When I run `wp post term remove 1 post_tag 4 2`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Removed terms.
|
|
"""
|
|
|
|
When I run `wp post term add 1 post_tag 4 --by=id`
|
|
Then STDOUT should contain:
|
|
"""
|
|
Success: Added term.
|
|
"""
|
|
|
|
When I run `wp post term list 1 post_tag --fields=term_id,name,slug`
|
|
Then STDOUT should be a table containing rows:
|
|
| term_id | name | slug |
|
|
| 4 | 2 | 2 |
|
|
|
|
When I run `wp post term add 1 post_tag 3 --by=slug`
|
|
Then STDOUT should contain:
|
|
"""
|
|
Success: Added term.
|
|
"""
|
|
|
|
When I run `wp post term list 1 post_tag --fields=term_id,name,slug`
|
|
Then STDOUT should be a table containing rows:
|
|
| term_id | name | slug |
|
|
| 2 | 3 | 3 |
|
|
| 4 | 2 | 2 |
|
|
|
|
When I run `wp post term remove 1 post_tag 2 --by=id`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Removed term.
|
|
"""
|
|
|
|
When I run `wp post term list 1 post_tag --fields=term_id,name,slug`
|
|
Then STDOUT should be a table containing rows:
|
|
| term_id | name | slug |
|
|
| 4 | 2 | 2 |
|
|
|
|
When I run `wp post term set 1 post_tag 3 --by=id`
|
|
Then STDOUT should contain:
|
|
"""
|
|
Success: Set term.
|
|
"""
|
|
|
|
When I run `wp post term list 1 post_tag --fields=term_id,name,slug`
|
|
Then STDOUT should be a table containing rows:
|
|
| term_id | name | slug |
|
|
| 3 | 4 | 4 |
|
|
|
|
Scenario: Remove all terms from post
|
|
Given a WP install
|
|
|
|
When I run `wp post term remove 1 category --all`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Removed all terms and set default term.
|
|
"""
|
|
|
|
When I try `wp post term remove 1 category cat1 cat2 --all`
|
|
Then STDERR should be:
|
|
"""
|
|
Error: No need to specify terms while removing all terms.
|
|
"""
|
|
And the return code should be 1
|