Skip to content

Commit 1a3958b

Browse files
committed
B2B-2451: Implement GraphQL Resolver Cache for CMS Page Type
1 parent 0a51925 commit 1a3958b

File tree

1 file changed

+29
-0
lines changed
  • dev/tests/api-functional/testsuite/Magento/CmsGraphQl/Model/Resolver

1 file changed

+29
-0
lines changed

dev/tests/api-functional/testsuite/Magento/CmsGraphQl/Model/Resolver/PageTest.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Magento\Cms\Model\Page as CmsPage;
1212
use Magento\Cms\Model\PageRepository;
1313
use Magento\Framework\Api\SearchCriteriaBuilder;
14+
use Magento\Framework\App\Cache\Frontend\Factory as CacheFrontendFactory;
1415
use Magento\Framework\App\Cache\StateInterface as CacheState;
1516
use Magento\Framework\ObjectManagerInterface;
1617
use Magento\GraphQlCache\Model\Cache\Query\Resolver\Result\Type as GraphQlCache;
@@ -395,6 +396,34 @@ public function testCmsPageResolverCacheDoesNotSaveNonExistentCmsPage()
395396
);
396397
}
397398

399+
/**
400+
* Test that resolver cache is saved with default TTL
401+
*
402+
* @magentoDataFixture Magento/Cms/Fixtures/page_list.php
403+
* @return void
404+
*/
405+
public function testCacheExpirationTimeUsesDefaultDirective()
406+
{
407+
$page = $this->getPageByTitle('Page with 1column layout');
408+
$query = $this->getQuery($page->getIdentifier());
409+
$response = $this->graphQlQueryWithResponseHeaders(
410+
$query
411+
);
412+
413+
$cacheIdentityString = $this->getResolverCacheKeyFromResponseAndPage(
414+
$response,
415+
$page
416+
);
417+
418+
$lowLevelFrontendCache = $this->graphqlCache->getLowLevelFrontend();
419+
$metadatas = $lowLevelFrontendCache->getMetadatas($cacheIdentityString);
420+
421+
$this->assertEquals(
422+
$metadatas['mtime'] + CacheFrontendFactory::DEFAULT_LIFETIME,
423+
$metadatas['expire']
424+
);
425+
}
426+
398427
private function generateExpectedDataFromPage(PageInterface $page): array
399428
{
400429
return [

0 commit comments

Comments
 (0)