diff --git a/tests/src/Functional/ResourceTestBase.php b/tests/src/Functional/ResourceTestBase.php index 0a7e186..0913073 100644 --- a/tests/src/Functional/ResourceTestBase.php +++ b/tests/src/Functional/ResourceTestBase.php @@ -445,9 +445,12 @@ abstract class ResourceTestBase extends BrowserTestBase { * The expected cacheability. */ protected function getExpectedUnauthorizedAccessCacheability() { + $cache_contexts = ['user.permissions']; + $entity_type = $this->entity->getEntityType(); + $cache_contexts = array_merge($cache_contexts, $entity_type->isRevisionable() ? ['url.query_args:resource_version'] : []); return (new CacheableMetadata()) ->setCacheTags(['4xx-response', 'http_response']) - ->setCacheContexts(['url.query_args:resource_version', 'user.permissions']); + ->setCacheContexts($cache_contexts); } /** @@ -482,18 +485,20 @@ abstract class ResourceTestBase extends BrowserTestBase { * @see ::testGetIndividual() */ protected function getExpectedCacheContexts(array $sparse_fieldset = NULL) { - return [ + $cache_contexts = [ // Cache contexts for JSON API URL query parameters. 'url.query_args:fields', 'url.query_args:filter', 'url.query_args:include', 'url.query_args:page', - 'url.query_args:resource_version', 'url.query_args:sort', // Drupal defaults. 'url.site', 'user.permissions', ]; + $entity_type = $this->entity->getEntityType(); + $cache_contexts = array_merge($cache_contexts, $entity_type->isRevisionable() ? ['url.query_args:resource_version'] : []); + return $cache_contexts; } /**