Skip to content
This repository was archived by the owner on Dec 19, 2019. It is now read-only.

Commit 8a5b3b7

Browse files
committed
#387: Test coverage of getting IDs of CMS page/blocks by GraphQL API
1 parent 7a90599 commit 8a5b3b7

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public function getData(string $blockIdentifier): array
5959
$renderedContent = $this->widgetFilter->filter($block->getContent());
6060

6161
$blockData = [
62+
BlockInterface::BLOCK_ID => $block->getId(),
6263
BlockInterface::IDENTIFIER => $block->getIdentifier(),
6364
BlockInterface::TITLE => $block->getTitle(),
6465
BlockInterface::CONTENT => $renderedContent,

app/code/Magento/CmsGraphQl/etc/schema.graphqls

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ type CmsBlocks @doc(description: "CMS blocks information") {
3737
}
3838

3939
type CmsBlock @doc(description: "CMS block defines all CMS block information") {
40+
block_id: Int @doc(description: "Entity ID of CMS block")
4041
identifier: String @doc(description: "CMS block identifier")
4142
title: String @doc(description: "CMS block title")
4243
content: String @doc(description: "CMS block content")

dev/tests/api-functional/testsuite/Magento/GraphQl/Cms/CmsBlockTest.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public function testGetCmsBlock()
4747
{
4848
cmsBlocks(identifiers: "enabled_block") {
4949
items {
50+
block_id
5051
identifier
5152
title
5253
content
@@ -59,6 +60,43 @@ public function testGetCmsBlock()
5960
self::assertArrayHasKey('cmsBlocks', $response);
6061
self::assertArrayHasKey('items', $response['cmsBlocks']);
6162

63+
self::assertEquals($cmsBlockData['block_id'], $response['cmsBlocks']['items'][0]['block_id']);
64+
self::assertEquals($cmsBlockData['identifier'], $response['cmsBlocks']['items'][0]['identifier']);
65+
self::assertEquals($cmsBlockData['title'], $response['cmsBlocks']['items'][0]['title']);
66+
self::assertEquals($renderedContent, $response['cmsBlocks']['items'][0]['content']);
67+
}
68+
69+
/**
70+
* Verify the fields of CMS Block selected by block_id
71+
*
72+
* @magentoApiDataFixture Magento/Cms/_files/blocks.php
73+
*/
74+
public function testGetCmsBlockByBlockId()
75+
{
76+
$cmsBlock = $this->blockRepository->getById('enabled_block');
77+
$cmsBlockData = $cmsBlock->getData();
78+
$blockId = $cmsBlockData['block_id'];
79+
$renderedContent = $this->filterEmulate->setUseSessionInUrl(false)->filter($cmsBlock->getContent());
80+
81+
$query =
82+
<<<QUERY
83+
{
84+
cmsBlocks(identifiers: "$blockId") {
85+
items {
86+
block_id
87+
identifier
88+
title
89+
content
90+
}
91+
}
92+
}
93+
QUERY;
94+
$response = $this->graphQlQuery($query);
95+
96+
self::assertArrayHasKey('cmsBlocks', $response);
97+
self::assertArrayHasKey('items', $response['cmsBlocks']);
98+
99+
self::assertEquals($blockId, $response['cmsBlocks']['items'][0]['block_id']);
62100
self::assertEquals($cmsBlockData['identifier'], $response['cmsBlocks']['items'][0]['identifier']);
63101
self::assertEquals($cmsBlockData['title'], $response['cmsBlocks']['items'][0]['title']);
64102
self::assertEquals($renderedContent, $response['cmsBlocks']['items'][0]['content']);

0 commit comments

Comments
 (0)