diff --git a/tests/src/Functional/CustomElementsRenderMarkupTest.php b/tests/src/Functional/CustomElementsRenderMarkupTest.php
index b2815cf2ad39a21ba363b244046a62064015c242..2f5e6ab5686e59e202ecf90fec91f2194727fb3d 100644
--- a/tests/src/Functional/CustomElementsRenderMarkupTest.php
+++ b/tests/src/Functional/CustomElementsRenderMarkupTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\custom_elements\Functional;
 
+use Drupal\Core\Config\FileStorage;
 use Drupal\Tests\BrowserTestBase;
 use Drupal\custom_elements\CustomElement;
 use Drupal\custom_elements\CustomElementGeneratorTrait;
@@ -9,7 +10,6 @@ use Drupal\file\Entity\File;
 use Drupal\media\Entity\Media;
 use Drupal\node\Entity\Node;
 use Drupal\paragraphs\Entity\Paragraph;
-use Symfony\Component\Yaml\Parser;
 
 /**
  * Test rendering custom elements into markup.
@@ -126,28 +126,33 @@ class CustomElementsRenderMarkupTest extends BrowserTestBase {
   private function importPartialThunderConfig(array $exclude_bundles) {
     $config_dir = dirname(dirname(dirname(__DIR__)))
       . '/modules/custom_elements_thunder/config/install';
-    // Avoid warnings when opendir does not have the permissions to open a
-    // directory.
-    if ($handle = opendir($config_dir)) {
-      while (FALSE !== ($filename = readdir($handle))) {
-        if (str_ends_with($filename, '.yml') && !array_filter(
+    $source = new FileStorage($config_dir);
+    // Get config names that do not contain any of $exclude_bundles.
+    $config_names = array_filter(
+      $source->listAll(),
+      function ($config_name) use ($exclude_bundles) {
+        // Return boolean indicating config name contains any of $exclude.
+        return !array_filter(
           $exclude_bundles,
-          function ($bundle) use ($filename) {
-            return str_contains($filename, $bundle);
+          function ($bundle) use ($config_name) {
+            return str_contains($config_name, $bundle);
           }
-        )) {
-          $config_name = substr($filename, 0, strlen($filename) - 4);
-          $data = file_get_contents("$config_dir/$filename");
-          $parser = new Parser();
-          $data = $parser->parse($data);
-          $config = \Drupal::configFactory()->getEditable($config_name);
-          foreach ($data as $data_key => $value) {
-            $config->set($data_key, $value);
-          }
-          $config->save();
-        }
+        );
+      }
+    );
+
+    foreach ($config_names as $config_name) {
+      // Use the entity API to create config entities.
+      $entity_type_id = \Drupal::service('config.manager')->getEntityTypeIdByName($config_name);
+      if ($entity_type_id) {
+        \Drupal::entityTypeManager()
+          ->getStorage($entity_type_id)
+          ->create($source->read($config_name))
+          ->save();
+      }
+      else {
+        \Drupal::service('config.storage')->write($config_name, $source->read($config_name));
       }
-      closedir($handle);
     }
   }