You are here

public function FieldDeletionTest::testDeleteField in Tome 8

@covers \Drupal\tome_sync\Exporter::exportContent

File

modules/tome_sync/tests/src/Kernel/FieldDeletionTest.php, line 36

Class

FieldDeletionTest
Tests that exports are updated when fields are deleted.

Namespace

Drupal\Tests\tome_sync\Kernel

Code

public function testDeleteField() {

  /** @var \Drupal\Core\Config\StorageInterface $storage */
  $storage = \Drupal::service('tome_sync.storage.content');
  $field_config = node_add_body_field(NodeType::load('article'));
  node_add_body_field(NodeType::load('page'));
  $article = Node::create([
    'type' => 'article',
    'title' => 'My article',
  ]);
  $article
    ->save();
  $page = Node::create([
    'type' => 'page',
    'title' => 'My page',
  ]);
  $page
    ->save();
  $data = $storage
    ->read(TomeSyncHelper::getContentName($article));
  $this
    ->assertArrayHasKey('body', $data);
  $data = $storage
    ->read(TomeSyncHelper::getContentName($page));
  $this
    ->assertArrayHasKey('body', $data);
  $field_config
    ->delete();
  $data = $storage
    ->read(TomeSyncHelper::getContentName($article));
  $this
    ->assertArrayNotHasKey('body', $data);
  $data = $storage
    ->read(TomeSyncHelper::getContentName($page));
  $this
    ->assertArrayHasKey('body', $data);
  FieldStorageConfig::loadByName('node', 'body')
    ->delete();
  $data = $storage
    ->read(TomeSyncHelper::getContentName($page));
  $this
    ->assertArrayNotHasKey('body', $data);
}