You are here

public function JsonApiExtrasFunctionalTest::testResourceTypeFieldAliasing in JSON:API Extras 8.3

Tests that resource type fields can be aliased per resource type.

Drupal\jsonapi_test_resource_type_building\EventSubscriber\ResourceTypeBuildEventSubscriber

@todo Create a test similar to this

See also

Core jsonapi module how the state code below works:

File

tests/src/Functional/JsonApiExtrasFunctionalTest.php, line 196

Class

JsonApiExtrasFunctionalTest
The test class for the main functionality.

Namespace

Drupal\Tests\jsonapi_extras\Functional

Code

public function testResourceTypeFieldAliasing() {

  /** @var \Drupal\jsonapi_extras\ResourceType\ConfigurableResourceTypeRepository $resourceTypeRepository */
  $resourceTypeRepository = $this->container
    ->get('jsonapi.resource_type.repository');
  $nodeArticleType = $resourceTypeRepository
    ->getByTypeName('node--article');
  $this
    ->assertSame('owner', $nodeArticleType
    ->getPublicName('uid'));
  $resource_type_field_aliases = [
    'node--article' => [
      'uid' => 'author',
    ],
  ];
  \Drupal::state()
    ->set('jsonapi_test_resource_type_builder.resource_type_field_aliases', $resource_type_field_aliases);
  Cache::invalidateTags([
    'jsonapi_resource_types',
  ]);
  $this
    ->assertSame('author', $resourceTypeRepository
    ->getByTypeName('node--article')
    ->getPublicName('uid'));
}