function ComponentRenderTest::checkRenderElementAlters
Ensures the alter callbacks work properly.
1 call to ComponentRenderTest::checkRenderElementAlters()
- ComponentRenderTest::testRender in core/tests/ Drupal/ KernelTests/ Components/ ComponentRenderTest.php 
- Test that components render correctly.
File
- 
              core/tests/ Drupal/ KernelTests/ Components/ ComponentRenderTest.php, line 260 
Class
- ComponentRenderTest
- Tests the correct rendering of components.
Namespace
Drupal\KernelTests\ComponentsCode
public function checkRenderElementAlters() : void {
  $build = [
    '#type' => 'component',
    '#component' => 'sdc_test:my-banner',
    '#props' => [
      'heading' => $this->t('I am a banner'),
      'ctaText' => $this->t('Click me'),
      'ctaHref' => 'https://www.example.org',
      'ctaTarget' => '',
    ],
    '#propsAlter' => [
      fn($props) => [
        $props,
        'heading' => $this->t('I am another banner'),
      ],
    ],
    '#slots' => [
      'banner_body' => [
        '#type' => 'html_tag',
        '#tag' => 'p',
        '#value' => $this->t('This is the contents of the banner body.'),
      ],
    ],
    '#slotsAlter' => [
      static fn($slots) => [
        $slots,
        'banner_body' => [
          '#markup' => '<h2>Just something else.</h2>',
        ],
      ],
    ],
  ];
  $crawler = $this->renderComponentRenderArray($build);
  $this->assertNotEmpty($crawler->filter('#sdc-wrapper [data-component-id="sdc_test:my-banner"] .component--my-banner--header h3:contains("I am another banner")'));
  $this->assertNotEmpty($crawler->filter('#sdc-wrapper [data-component-id="sdc_test:my-banner"] .component--my-banner--body:contains("Just something else.")'));
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
