-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Pattern Directory]: Add categories endpoint #45749
Conversation
Open in CodeSandbox Web Editor | VS Code | VS Code Insiders |
a1beb4b
to
ae38a3f
Compare
public function test_prepare_pattern_category_for_response() { | ||
$raw_categories = array( | ||
(object) array( | ||
'id' => 3, | ||
'name' => 'Columns', | ||
'slug' => 'columns', | ||
'description' => 'A description', | ||
), | ||
); | ||
|
||
$prepared_category = static::$controller->prepare_response_for_collection( | ||
static::$controller->prepare_pattern_category_for_response( $raw_categories[0], new WP_REST_Request() ) | ||
); | ||
|
||
$this->assertSame( | ||
array( | ||
'id' => 3, | ||
'name' => 'Columns', | ||
'slug' => 'columns', | ||
), | ||
$prepared_category | ||
); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should use assertions similar to the ::prepare_item_for_response
test - https://github.com/WordPress/wordpress-develop/blob/master/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php#L324-L334. What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think it makes any difference to load from a json file, since we're only checking if it preserves the props we want to and we don't make any request. That's why I also didn't use assertArrayNotHasKey
, because it makes sense to test what to expect and not if just a key
isn't there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that's okay. But core endpoints are probably expected to have the schema defined so we can add that assertion.
I don't have a strong opinion here; I'm just trying to make sure backports don't require many changes.
lib/compat/wordpress-6.2/class-gutenberg-rest-pattern-directory-controller-6-2.php
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new endpoint works as expected.
Besides my two new suggestions, getting a second opinion on adding and using schema in unit tests would be nice.
lib/compat/wordpress-6.2/class-gutenberg-rest-pattern-directory-controller-6-2.php
Show resolved
Hide resolved
lib/compat/wordpress-6.2/class-gutenberg-rest-pattern-directory-controller-6-2.php
Outdated
Show resolved
Hide resolved
5c43edf
to
f4d8e09
Compare
What?
This PR adds a new endpoint in pattern directory controller for categories. Extracted from #45237.
Testing Instructions
Test the API endpoint in a REST client (
/wp-json/wp/v2/pattern-directory/categories
). It should match the pattern categories in pattern directory.