function ResourceTypeRepositoryTest::testResourceTypeFieldEnabling

Tests that resource type fields can be re-enabled per resource type.

File

core/modules/jsonapi/tests/src/Kernel/ResourceType/ResourceTypeRepositoryTest.php, line 225

Class

ResourceTypeRepositoryTest
Tests Drupal\jsonapi\ResourceType\ResourceTypeRepository.

Namespace

Drupal\Tests\jsonapi\Kernel\ResourceType

Code

public function testResourceTypeFieldEnabling() : void {
  $this->assertTrue($this->resourceTypeRepository
    ->getByTypeName('node--article')
    ->isFieldEnabled('uid'));
  $this->assertTrue($this->resourceTypeRepository
    ->getByTypeName('node--page')
    ->isFieldEnabled('uid'));
  $disabled_resource_type_fields = [
    'node--article' => [
      'uid' => TRUE,
    ],
    'node--page' => [
      'uid' => TRUE,
    ],
  ];
  \Drupal::state()->set('jsonapi_test_resource_type_builder.disabled_resource_type_fields', $disabled_resource_type_fields);
  Cache::invalidateTags([
    'jsonapi_resource_types',
  ]);
  $this->assertFalse($this->resourceTypeRepository
    ->getByTypeName('node--article')
    ->isFieldEnabled('uid'));
  $this->assertFalse($this->resourceTypeRepository
    ->getByTypeName('node--page')
    ->isFieldEnabled('uid'));
  $enabled_resource_type_fields = [
    'node--article' => [
      'uid' => TRUE,
    ],
    'node--page' => [
      'uid' => TRUE,
    ],
  ];
  \Drupal::state()->set('jsonapi_test_resource_type_builder.enabled_resource_type_fields', $enabled_resource_type_fields);
  Cache::invalidateTags([
    'jsonapi_resource_types',
  ]);
  $this->assertTrue($this->resourceTypeRepository
    ->getByTypeName('node--article')
    ->isFieldEnabled('uid'));
  $this->assertTrue($this->resourceTypeRepository
    ->getByTypeName('node--page')
    ->isFieldEnabled('uid'));
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.