diff --git a/modules/ui_patterns_blocks/tests/fixtures/config/core.entity_view_display.node.page.full.layout_builder.classic.yml b/modules/ui_patterns_blocks/tests/fixtures/config/core.entity_view_display.node.page.full.layout_builder.classic.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9acf3e111ad70b713c698af1a3a6c51170f147e5
--- /dev/null
+++ b/modules/ui_patterns_blocks/tests/fixtures/config/core.entity_view_display.node.page.full.layout_builder.classic.yml
@@ -0,0 +1,143 @@
+uuid: a9e67581-da30-4331-8fb0-397e185541f3
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.node.full
+    - field.field.node.page.body
+    - node.type.page
+  module:
+    - layout_builder
+    - layout_discovery
+    - ui_patterns
+    - ui_patterns_blocks
+    - ui_patterns_test
+    - user
+third_party_settings:
+  layout_builder:
+    enabled: true
+    allow_custom: false
+    sections:
+      -
+        layout_id: layout_onecol
+        layout_settings:
+          label: ''
+          context_mapping: {  }
+        components:
+          e35dd171-c69c-451f-a035-88dcb7a80af5:
+            uuid: e35dd171-c69c-451f-a035-88dcb7a80af5
+            region: content
+            configuration:
+              id: 'ui_patterns_entity:ui_patterns_test:test-component'
+              label: 'UI Patterns Test component'
+              label_display: '0'
+              provider: ui_patterns_blocks
+              context_mapping:
+                entity: layout_builder.entity
+              ui_patterns:
+                component_id: null
+                variant_id:
+                  source_id: select
+                  source:
+                    value: ''
+                slots:
+                  slot:
+                    sources:
+                      -
+                        source:
+                          derivable_context: 'field:node:page:title'
+                          'field:node:page:title':
+                            value:
+                              sources:
+                                -
+                                  source_id: 'field_property:node:title:value'
+                                  _weight: '0'
+                        source_id: entity_field
+                        _weight: '0'
+                props:
+                  attributes:
+                    source_id: class_attribute
+                    source:
+                      value: ''
+                  string:
+                    source_id: context_exists
+                    source:
+                      context_type: entity
+                  integer:
+                    source_id: number
+                    source:
+                      value: ''
+                  number:
+                    source_id: number
+                    source:
+                      value: ''
+                  url:
+                    source_id: url
+                    source:
+                      value: ''
+                  identifier:
+                    source_id: textfield
+                    source:
+                      value: ''
+                  boolean:
+                    source_id: checkbox
+                  links:
+                    source_id: menu
+                    source:
+                      menu: ''
+                      level: '1'
+                      depth: '0'
+                  enum_integer:
+                    source_id: select
+                    source:
+                      value: ''
+                  enum_string:
+                    source_id: select
+                    source:
+                      value: ''
+                  enum_list:
+                    source_id: selects
+                    source:
+                      value:
+                        - ''
+                  enum_list_multiple:
+                    source_id: selects
+                    source:
+                      value:
+                        - ''
+                        - ''
+                        - ''
+                  enum_set:
+                    source_id: checkboxes
+                  list_string:
+                    source_id: list_textarea
+                    source:
+                      value: ''
+                  list_integer:
+                    source_id: list_textarea
+                    source:
+                      value: ''
+                  list_mixed:
+                    source_id: list_textarea
+                    source:
+                      value: ''
+                  attributes_implicit:
+                    source_id: class_attribute
+                    source:
+                      value: ''
+                  attributes_ui_patterns:
+                    source_id: class_attribute
+                    source:
+                      value: ''
+                  attributes_class:
+                    source_id: class_attribute
+                    source:
+                      value: ''
+            weight: 0
+            additional: {  }
+        third_party_settings: {  }
+id: node.page.full
+targetEntityType: node
+bundle: page
+mode: full
+content: {}
diff --git a/modules/ui_patterns_blocks/tests/src/Functional/LayoutBuilderBlockRenderTest.php b/modules/ui_patterns_blocks/tests/src/Functional/LayoutBuilderBlockRenderTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..1bb3089677fcea1c6c8b163ea81c692edffe3cf2
--- /dev/null
+++ b/modules/ui_patterns_blocks/tests/src/Functional/LayoutBuilderBlockRenderTest.php
@@ -0,0 +1,71 @@
+<?php
+
+namespace Drupal\Tests\ui_patterns_blocks\Functional;
+
+use Drupal\Tests\ui_patterns\Functional\UiPatternsFunctionalTestBase;
+use Drupal\Tests\ui_patterns\Traits\TestDataTrait;
+
+/**
+ * Test component rendering with Layout Builder.
+ *
+ * @group ui_patterns_blocks
+ */
+class LayoutBuilderBlockRenderTest extends UiPatternsFunctionalTestBase {
+
+  use TestDataTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = [
+    'node',
+    'ui_patterns',
+    'ui_patterns_test',
+    'ui_patterns_blocks',
+    'field_ui',
+    'layout_builder',
+    'block',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp(): void {
+    parent::setUp();
+    if ($this->user) {
+      $this->drupalCreateRole(['configure any layout'], 'custom_role');
+      $this->user->addRole('custom_role');
+      $this->user->save();
+    }
+  }
+
+  /**
+   * Test the form and the existence of the.
+   */
+  public function testContextInFormAndRender(): void {
+    $this->createTestContentContentType();
+    $assert_session = $this->assertSession();
+    $config_import = $this->loadConfigFixture(__DIR__ . '/../../fixtures/config/core.entity_view_display.node.page.full.layout_builder.classic.yml');
+    $ui_patterns_config = &$config_import['third_party_settings']['layout_builder']['sections'][0]['components']['e35dd171-c69c-451f-a035-88dcb7a80af5']['configuration']['formatter']['settings']['ui_patterns'];
+    $test_data = $this->loadTestDataFixture();
+    $test_set = $test_data->getTestSet('context_exists_default');
+    $ui_patterns_config = $this->buildUiPatternsConfig($test_set);
+    $this->importConfigFixture(
+      'core.entity_view_display.node.page.full',
+      $config_import
+    );
+    $this->drupalGet('layout_builder/update/block/defaults/node.page.full/0/wrapper/e35dd171-c69c-451f-a035-88dcb7a80af5');
+    $assert_session->elementTextEquals('css', '.context-exists', $test_set['output']['props']['string']['value']);
+    // ---
+    $node = $this->createTestContentNode('page', $test_set['entity'] ?? []);
+    $this->drupalGet('node/' . $node->id());
+    $status_code = $this->getSession()->getStatusCode();
+    $this->assertTrue($status_code === 200, sprintf('Status code is $status_code for test %s. %s', $test_set['name'], $this->getSession()->getPage()->getContent()));
+    $assert_session->statusCodeEquals(200);
+    $this->validateRenderedComponent($test_set);
+    if (isset($test_set["assertSession"])) {
+      $this->assertSessionObject($test_set["assertSession"]);
+    }
+  }
+
+}
diff --git a/modules/ui_patterns_blocks/tests/src/Kernel/SourcesDeriverTest.php b/modules/ui_patterns_blocks/tests/src/Kernel/SourcesDeriverTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..a2e1e3c4eb7ca4aa096a1512144b6fa35d06be96
--- /dev/null
+++ b/modules/ui_patterns_blocks/tests/src/Kernel/SourcesDeriverTest.php
@@ -0,0 +1,78 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Drupal\Tests\ui_patterns_blocks\Kernel;
+
+use Drupal\Tests\ui_patterns\Kernel\SourcePluginsTestBase;
+use Drupal\ui_patterns_blocks\Plugin\Block\ComponentBlock;
+use Drupal\ui_patterns_blocks\Plugin\Block\EntityComponentBlock;
+
+/**
+ * Tests UI patterns block plugin deriver.
+ *
+ * @group ui_patterns_blocks
+ */
+class SourcesDeriverTest extends SourcePluginsTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = ['ui_patterns', 'ui_patterns_test', 'ui_patterns_blocks'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected $strictConfigSchema = FALSE;
+
+  /**
+   * The layout plugin manager.
+   *
+   * @var \Drupal\Core\Block\BlockManagerInterface
+   */
+  protected $blockManager;
+
+  /**
+   * The component plugin manager.
+   *
+   * @var \Drupal\Core\Theme\ComponentPluginManager
+   */
+  protected $componentManager;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp(): void {
+    parent::setUp();
+
+    $this->blockManager = $this->container->get('plugin.manager.block');
+    $this->componentManager = $this->container->get('plugin.manager.sdc');
+  }
+
+  /**
+   * Tests creating fields of all types on a content type.
+   */
+  public function testDerivedPluginPerComponent() {
+    /* @phpstan-ignore method.notFound */
+    $components = $this->componentManager->getSortedDefinitions();
+    foreach ($components as $component) {
+      $id = (string) $component['id'];
+      $block_plugin_id = sprintf('ui_patterns:%s', $id);
+      $block = $this->blockManager->createInstance($block_plugin_id);
+      $this->assertNotNull($block, "Block for component {$component['id']} is missing");
+      $this->assertInstanceOf(ComponentBlock::class, $block,
+        get_class($block) . " " . $component['id'] . " " . print_r($this->blockManager->getDefinitions(), TRUE));
+      $block_plugin_id = sprintf('ui_patterns_entity:%s', $id);
+      $block = $this->blockManager->createInstance($block_plugin_id);
+      $this->assertNotNull($block, "Block with entity context for component {$component['id']} is missing");
+      $this->assertInstanceOf(EntityComponentBlock::class, $block);
+      $plugin_definition = $block->getPluginDefinition() ?? [];
+      if (!is_array($plugin_definition)) {
+        $plugin_definition = [];
+      }
+      $context_definitions = $plugin_definition['context_definitions'] ?? [];
+      $this->assertArrayHasKey('entity', $context_definitions);
+    }
+  }
+
+}
diff --git a/tests/fixtures/TestDataSet.yml b/tests/fixtures/TestDataSet.yml
index 3669b5ecfe77e10101b303b31b6635935936f39d..178a8b5d7356da0c798dab04aa302de25d92c3c6 100644
--- a/tests/fixtures/TestDataSet.yml
+++ b/tests/fixtures/TestDataSet.yml
@@ -280,6 +280,11 @@ context_exists_default:
       string:
         value: 'entity exists: 1'
   entity: {}
+  assertSession:
+    elementExists:
+      - [ 'css', '.ui-patterns-test-component' ]
+    elementTextEquals:
+      - [ 'xpath', "//div[@class='ui-patterns-props-string']/text()",'entity exists: 1' ]
 
 checkboxes_1:
   component: