diff --git a/tests/unit/CoreCodeTest.php b/tests/unit/CoreCodeTest.php index 3666fec8..f6248693 100644 --- a/tests/unit/CoreCodeTest.php +++ b/tests/unit/CoreCodeTest.php @@ -45,34 +45,47 @@ public function tearDown(): void { */ public function query(): string { return ' - fragment CoreCodeBlockFragment on CoreCode { - attributes { - align - anchor - backgroundColor - borderColor - className - content - cssClassName - fontFamily - fontSize - gradient - lock - metadata - style - textColor - } - } - query Post( $id: ID! ) { - post(id: $id, idType: DATABASE_ID) { - databaseId - editorBlocks { - name - ...CoreCodeBlockFragment - } - } - } - '; + fragment CoreCodeBlockFragment on CoreCode { + attributes { + align + anchor + backgroundColor + borderColor + className + content + cssClassName + fontFamily + fontSize + gradient + lock + # metadata + style + textColor + } + } + query Post( $id: ID! ) { + post(id: $id, idType: DATABASE_ID) { + databaseId + editorBlocks { + apiVersion + blockEditorCategoryName + clientId + cssClassNames + innerBlocks { + name + } + isDynamic + name + parentClientId + renderedHtml + ... on BlockWithSupportsAnchor { + anchor + } + ...CoreCodeBlockFragment + } + } + } + '; } /** @@ -90,12 +103,12 @@ className */ public function test_retrieve_core_code_attributes() { $block_content = ' - -
function hello_world() {
- console.log("Hello, World!");
-}
-
- ';
+
+ function hello_world() {
+ console.log("Hello, World!");
+ }
+
+ ';
wp_update_post(
[
@@ -104,33 +117,48 @@ public function test_retrieve_core_code_attributes() {
]
);
- $actual = graphql(
- [
- 'query' => $this->query(),
- 'variables' => [ 'id' => $this->post_id ],
- ]
- );
+ $query = $this->query();
+ $variables = [
+ 'id' => $this->post_id,
+ ];
- $block = $actual['data']['post']['editorBlocks'][0];
- $attributes = $block['attributes'];
+ $actual = graphql( compact( 'query', 'variables' ) );
+
+ $this->assertArrayNotHasKey( 'errors', $actual, 'There should not be any errors' );
+ $this->assertArrayHasKey( 'data', $actual, 'The data key should be present' );
+ $this->assertArrayHasKey( 'post', $actual['data'], 'The post key should be present' );
+
+ $this->assertEquals( $this->post_id, $actual['data']['post']['databaseId'], 'The post ID should match' );
+
+ $this->assertEquals( 1, count( $actual['data']['post']['editorBlocks'] ) );
+
+ $block = $actual['data']['post']['editorBlocks'][0];
- $this->assertEquals( 'core/code', $block['name'] );
+ $this->assertNotEmpty( $block['apiVersion'], 'The apiVersion should be present' );
+ $this->assertEquals( 'text', $block['blockEditorCategoryName'], 'The blockEditorCategoryName should be text' );
+ $this->assertNotEmpty( $block['clientId'], 'The clientId should be present' );
+
+ $this->assertEmpty( $block['innerBlocks'], 'There should be no inner blocks' );
+ $this->assertEquals( 'core/code', $block['name'], 'The block name should be core/code' );
+ $this->assertEmpty( $block['parentClientId'], 'There should be no parentClientId' );
+ $this->assertNotEmpty( $block['renderedHtml'], 'The renderedHtml should be present' );
+
+ $attributes = $block['attributes'];
$this->assertEquals(
[
'align' => null,
'anchor' => null,
- 'backgroundColor' => 'pale-cyan-blue',
+ 'backgroundColor' => 'pale-cyan-blue', // previously untested
'borderColor' => null,
'className' => null,
- 'content' => "function hello_world() {\n console.log(\"Hello, World!\");\n}",
- 'cssClassName' => 'wp-block-code has-vivid-red-color has-pale-cyan-blue-background-color has-text-color has-background has-large-font-size has-monospace-font-family',
- 'fontFamily' => 'monospace',
- 'fontSize' => 'large',
+ 'content' => "function hello_world() {\n\t\t\t\tconsole.log(\"Hello, World!\");\n\t\t\t}", // previously untested
+ 'cssClassName' => 'wp-block-code has-vivid-red-color has-pale-cyan-blue-background-color has-text-color has-background has-large-font-size has-monospace-font-family', // previously untested
+ 'fontFamily' => 'monospace', // previously untested
+ 'fontSize' => 'large', // previously untested
'gradient' => null,
'lock' => null,
- 'metadata' => null,
'style' => null,
- 'textColor' => 'vivid-red',
+ 'textColor' => 'vivid-red', // previously untested
],
$attributes
);
@@ -149,10 +177,10 @@ public function test_retrieve_core_code_attributes() {
*/
public function test_retrieve_core_code_with_custom_styles() {
$block_content = '
-
- const greeting = "Hello, styled code!";
-
- ';
+
+ const greeting = "Hello, styled code!";
+
+ ';
wp_update_post(
[
@@ -161,31 +189,40 @@ public function test_retrieve_core_code_with_custom_styles() {
]
);
- $actual = graphql(
- [
- 'query' => $this->query(),
- 'variables' => [ 'id' => $this->post_id ],
- ]
- );
+ $query = $this->query();
+ $variables = [
+ 'id' => $this->post_id,
+ ];
- $block = $actual['data']['post']['editorBlocks'][0];
- $attributes = $block['attributes'];
+ $actual = graphql( compact( 'query', 'variables' ) );
+
+ $this->assertArrayNotHasKey( 'errors', $actual, 'There should not be any errors' );
+ $this->assertArrayHasKey( 'data', $actual, 'The data key should be present' );
+ $this->assertArrayHasKey( 'post', $actual['data'], 'The post key should be present' );
+ $this->assertEquals( $this->post_id, $actual['data']['post']['databaseId'], 'The post ID should match' );
+
+ $this->assertEquals( 1, count( $actual['data']['post']['editorBlocks'] ) );
+
+ $block = $actual['data']['post']['editorBlocks'][0];
+
+ $this->assertEquals( 'core/code', $block['name'], 'The block name should be core/code' );
+
+ $attributes = $block['attributes'];
$this->assertEquals(
[
- 'align' => 'wide',
+ 'align' => 'wide', // previously untested
'anchor' => null,
'backgroundColor' => null,
- 'borderColor' => 'vivid-cyan-blue',
- 'className' => 'custom-class',
+ 'borderColor' => 'vivid-cyan-blue', // previously untested
+ 'className' => 'custom-class', // previously untested
'content' => 'const greeting = "Hello, styled code!";',
'cssClassName' => 'wp-block-code alignwide custom-class has-border-color has-vivid-cyan-blue-border-color',
'fontFamily' => null,
'fontSize' => null,
'gradient' => null,
'lock' => null,
- 'metadata' => null,
- 'style' => wp_json_encode(
+ 'style' => wp_json_encode( // previously untested
[
'border' => [
'width' => '2px',
@@ -213,16 +250,15 @@ public function test_retrieve_core_code_with_custom_styles() {
* - gradient
* - anchor
* - lock
- * - metadata
*
* @return void
*/
public function test_retrieve_core_code_with_gradient_and_additional_attributes() {
$block_content = '
-
- console.log("Gradient and locked code block");
-
- ';
+
+ console.log("Gradient and locked code block");
+
+ ';
wp_update_post(
[
@@ -231,20 +267,30 @@ public function test_retrieve_core_code_with_gradient_and_additional_attributes(
]
);
- $actual = graphql(
- [
- 'query' => $this->query(),
- 'variables' => [ 'id' => $this->post_id ],
- ]
- );
+ $query = $this->query();
+ $variables = [
+ 'id' => $this->post_id,
+ ];
- $block = $actual['data']['post']['editorBlocks'][0];
- $attributes = $block['attributes'];
+ $actual = graphql( compact( 'query', 'variables' ) );
+
+ $this->assertArrayNotHasKey( 'errors', $actual, 'There should not be any errors' );
+ $this->assertArrayHasKey( 'data', $actual, 'The data key should be present' );
+ $this->assertArrayHasKey( 'post', $actual['data'], 'The post key should be present' );
+
+ $this->assertEquals( $this->post_id, $actual['data']['post']['databaseId'], 'The post ID should match' );
+
+ $this->assertEquals( 1, count( $actual['data']['post']['editorBlocks'] ) );
+ $block = $actual['data']['post']['editorBlocks'][0];
+
+ $this->assertEquals( 'core/code', $block['name'], 'The block name should be core/code' );
+
+ $attributes = $block['attributes'];
$this->assertEquals(
[
'align' => null,
- 'anchor' => 'test-anchor',
+ 'anchor' => 'test-anchor', // previously untested
'backgroundColor' => null,
'borderColor' => null,
'className' => null,
@@ -252,9 +298,8 @@ public function test_retrieve_core_code_with_gradient_and_additional_attributes(
'cssClassName' => 'wp-block-code has-vivid-cyan-blue-to-vivid-purple-gradient-background',
'fontFamily' => null,
'fontSize' => null,
- 'gradient' => 'vivid-cyan-blue-to-vivid-purple',
- 'lock' => '{"move":true,"remove":true}',
- 'metadata' => '{"someKey":"someValue"}',
+ 'gradient' => 'vivid-cyan-blue-to-vivid-purple', // previously untested
+ 'lock' => '{"move":true,"remove":true}', // previously untested
'style' => null,
'textColor' => null,
],