diff --git a/composer.json b/composer.json
index 9c582c2..4bd1b81 100644
--- a/composer.json
+++ b/composer.json
@@ -4,10 +4,8 @@
   "type": "drupal-module",
   "license": "GPL-2.0-or-later",
   "require": {
-    "drupal/core": "^8.8|^9.0"
+    "drupal/core": "^9.0 || ^10.0"
   },
   "require-dev": {
-    "drupal/prefetch_cache": "dev-1.x",
-    "drupal/conflict": "^2.0@ALPHA"
   }
 }
diff --git a/content_lock.info.yml b/content_lock.info.yml
index 6f9f28d..7160c47 100644
--- a/content_lock.info.yml
+++ b/content_lock.info.yml
@@ -2,10 +2,8 @@ name: Content Lock
 description: 'Prevents multiple users from trying to edit a content entity simultaneously to prevent edit conflicts.'
 type: module
 package: Content
-core_version_requirement: ^8.8 || ^9
+core_version_requirement: ^9 || ^10
 configure: content_lock.settings
 
 test_dependencies:
-  - prefetch_cache:prefetch_cache
   - drupal:content_translation
-  - conflict:conflict
diff --git a/content_lock.install b/content_lock.install
index 5cb4d30..64702f7 100644
--- a/content_lock.install
+++ b/content_lock.install
@@ -5,7 +5,6 @@
  * Create content_lock table.
  */
 
-use Drupal\Core\Database\Database;
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
 
@@ -77,8 +76,17 @@ function content_lock_schema() {
  * Reinstall database schema.
  */
 function content_lock_update_8001(&$sandbox) {
-  drupal_uninstall_schema('content_lock');
-  drupal_install_schema('content_lock');
+  // Uninstall table.
+  $table = 'content_lock';
+  $schema = \Drupal::database()->schema();
+  if ($schema->tableExists($table)) {
+    $schema->dropTable($table);
+  }
+
+  // Install table.
+  $name = 'content_lock';
+  $table = content_lock_schema();
+  \Drupal::database()->schema()->createTable($name, $table);
 }
 
 /**
diff --git a/content_lock.libraries.yml b/content_lock.libraries.yml
index 3a562ae..ec39413 100644
--- a/content_lock.libraries.yml
+++ b/content_lock.libraries.yml
@@ -1,13 +1,14 @@
 drupal.content_lock.settings:
-  version: VERSION
   js:
     js/content_lock_settings.js: {}
   dependencies:
     - core/jquery
+    - core/drupal
+    - core/once
 drupal.content_lock.lock_form:
   js:
     js/content_lock_form.js: {}
   dependencies:
     - core/jquery
     - core/drupal
-    - core/jquery.once
+    - core/once
diff --git a/content_lock.module b/content_lock.module
index 3380494..9df7b0c 100644
--- a/content_lock.module
+++ b/content_lock.module
@@ -63,7 +63,7 @@ function content_lock_form_alter(&$form, FormStateInterface $form_state, $form_i
   if (!$form_state->getFormObject() instanceof EntityFormInterface) {
     return;
   }
-  /** @var \Drupal\core\Entity\ContentEntityInterface $entity */
+  /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
   $entity = $form_state->getFormObject()->getEntity();
   $entity_type = $entity->getEntityTypeId();
   $user = Drupal::currentUser();
@@ -149,7 +149,7 @@ function content_lock_form_submit($form, FormStateInterface $form_state) {
 
   /** @var \Drupal\content_lock\ContentLock\ContentLock $lock_service */
   $lock_service = \Drupal::service('content_lock');
-  /** @var \Drupal\core\Entity\ContentEntityInterface $entity */
+  /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
   $entity = $form_state->getFormObject()->getEntity();
 
   // If the user submitting owns the lock, release it.
@@ -393,9 +393,9 @@ function content_lock_entity_operation(EntityInterface $entity) {
  */
 function content_lock_theme() {
   return [
-    'content_lock_settings_entities' => array(
+    'content_lock_settings_entities' => [
       'render element' => 'element',
-    ),
+    ],
   ];
 }
 
diff --git a/drupalci.yml b/drupalci.yml
deleted file mode 100644
index cea93e6..0000000
--- a/drupalci.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-build:
-  environment:
-    startcontainers:
-      runcontainers:
-    create_db:
-      dbcreate:
-  codebase:
-    assemble_codebase:
-      checkout_core:
-      checkout.contrib:
-      fetch:
-      patch:
-      composer.core_install:
-      gather_dependencies:
-      update_build:
-      yarn_install:
-      start_phantomjs:
-  assessment:
-    validate_codebase:
-      phplint:
-      container_composer:
-      host_command:
-        commands:
-          - 'cd modules/contrib/prefetch_cache; sudo -u www-data curl "https://git.drupalcode.org/project/prefetch_cache/-/merge_requests/1.diff" | sudo -u www-data patch -p1'
-      csslint:
-        halt-on-fail: true
-      eslint:
-        halt-on-fail: false
-      phpcs:
-        halt-on-fail: true
-    testing:
-      run_tests.standard:
-        types: 'PHPUnit-Unit,PHPUnit-Kernel,PHPUnit-Functional'
-      run_tests.js:
-        concurrency: 15
-        types: 'PHPUnit-FunctionalJavascript'
-      # There are no nightwatch tests yet.
-      # nightwatchjs:
diff --git a/js/content_lock_form.js b/js/content_lock_form.js
index 4e7c2f6..db55f99 100644
--- a/js/content_lock_form.js
+++ b/js/content_lock_form.js
@@ -3,7 +3,7 @@
  * Defines Javascript behaviors for the Content Lock button.
  */
 
-(function ($, Drupal, drupalSettings) {
+(function ($, Drupal, once) {
 
   /**
    * Behaviors for tabs in the node edit form.
@@ -20,11 +20,9 @@
       }
 
       $.each(drupalSettings.content_lock, function (form_id, settings) {
-        $('form.' + form_id, context)
-          .once('content-lock')
-          .each(function () {
-            new Drupal.content_lock(this, settings);
-          })
+        once('content-lock', 'form.' + form_id, context).forEach(function (elem) {
+          new Drupal.content_lock(elem, settings);
+        });
       })
     }
   };
@@ -60,4 +58,4 @@
     };
   };
 
-}(jQuery, Drupal, drupalSettings));
+}(jQuery, Drupal, once));
diff --git a/js/content_lock_settings.js b/js/content_lock_settings.js
index 71b7c78..3c368bd 100644
--- a/js/content_lock_settings.js
+++ b/js/content_lock_settings.js
@@ -3,7 +3,7 @@
  * Defines Javascript behaviors for the content lock module.
  */
 
-(function ($, Drupal, drupalSettings) {
+(function ($, Drupal, once) {
 
   'use strict';
 
@@ -17,16 +17,15 @@
    */
   Drupal.behaviors.contentLockSettings = {
     attach: function (context, settings) {
-      $('.content-lock-entity-settings[value="*"]', context)
-        .once('content-lock-settings')
+      once('content-lock-settings', '.content-lock-entity-settings[value="*"]', context).forEach(function (elem) {
         // Init
-        .each(Drupal.behaviors.contentLockSettings.toggleBundles)
+        Drupal.behaviors.contentLockSettings.toggleBundles
         // Change
-        .change(Drupal.behaviors.contentLockSettings.toggleBundles);
-
-      $('.content-lock-entity-types input', context)
-        .once('content-lock-settings')
-        .change(Drupal.behaviors.contentLockSettings.toggleEntityType);
+        $(elem).change(Drupal.behaviors.contentLockSettings.toggleBundles);
+      });
+      once('content-lock-settings', '.content-lock-entity-types input', context).forEach(function (elem) {
+        $(elem).change(Drupal.behaviors.contentLockSettings.toggleEntityType);
+      });
     },
 
     /**
@@ -71,4 +70,4 @@
     }
   };
 
-})(jQuery, Drupal, drupalSettings);
+})(jQuery, Drupal, once);
diff --git a/modules/content_lock_timeout/content_lock_timeout.info.yml b/modules/content_lock_timeout/content_lock_timeout.info.yml
index c7654c0..148abd7 100644
--- a/modules/content_lock_timeout/content_lock_timeout.info.yml
+++ b/modules/content_lock_timeout/content_lock_timeout.info.yml
@@ -1,6 +1,6 @@
 name: Content Lock Timeout
 description: Provides mechanisms for automatically unlocking nodes that have been locked for a certain length of time.
-core_version_requirement: ^8.8 || ^9
+core_version_requirement: ^9 || ^10
 type: module
 package: Content
 configure: content_lock_timeout.settings
diff --git a/modules/content_lock_timeout/tests/modules/content_lock_timeout_test/content_lock_timeout_test.info.yml b/modules/content_lock_timeout/tests/modules/content_lock_timeout_test/content_lock_timeout_test.info.yml
index 66c4a12..7a85d84 100644
--- a/modules/content_lock_timeout/tests/modules/content_lock_timeout_test/content_lock_timeout_test.info.yml
+++ b/modules/content_lock_timeout/tests/modules/content_lock_timeout_test/content_lock_timeout_test.info.yml
@@ -1,7 +1,6 @@
 name: 'Content lock timeout test'
 type: module
 description: 'Provides test classes.'
-core_version_requirement: ^8.8 || ^9
 package: Testing
 version: VERSION
 dependencies:
diff --git a/modules/content_lock_timeout/tests/src/Functional/ContentLockTimeoutTest.php b/modules/content_lock_timeout/tests/src/Functional/ContentLockTimeoutTest.php
index 7c71f1e..74a2e1d 100644
--- a/modules/content_lock_timeout/tests/src/Functional/ContentLockTimeoutTest.php
+++ b/modules/content_lock_timeout/tests/src/Functional/ContentLockTimeoutTest.php
@@ -24,7 +24,7 @@ class ContentLockTimeoutTest extends BrowserTestBase {
    *
    * @var array
    */
-  public static $modules = [
+  protected static $modules = [
     'system',
     'language',
     'user',
@@ -117,7 +117,7 @@ class ContentLockTimeoutTest extends BrowserTestBase {
   /**
    * Setup and Rebuild node access.
    */
-  public function setUp() {
+  public function setUp(): void {
     parent::setUp();
 
     $this->drupalCreateContentType(['type' => 'article']);
@@ -253,7 +253,7 @@ class ContentLockTimeoutTest extends BrowserTestBase {
 
     // Content should be locked.
     $this->drupalGet($entity->toUrl('edit-form')->toString());
-    $this->assertText(t('This content is being edited by the user @name and is therefore locked to prevent other users changes.', [
+    $this->assertSession()->pageTextContains(t('This content is being edited by the user @name and is therefore locked to prevent other users changes.', [
       '@name' => $this->user1->getDisplayName(),
     ]));
 
@@ -265,7 +265,7 @@ class ContentLockTimeoutTest extends BrowserTestBase {
     // Content should be unlocked by cron.
     $this->assertNoLockOnContent($entity);
     $this->drupalGet($entity->toUrl('edit-form')->toString());
-    $this->assertText(t('This content is now locked against simultaneous editing.'));
+    $this->assertSession()->pageTextContains(t('This content is now locked against simultaneous editing.'));
 
     $this->drupalLogout();
 
@@ -278,7 +278,7 @@ class ContentLockTimeoutTest extends BrowserTestBase {
 
     // Content should be locked.
     $this->drupalGet($entity->toUrl('edit-form')->toString());
-    $this->assertText(t('This content is being edited by the user @name and is therefore locked to prevent other users changes.', [
+    $this->assertSession()->pageTextContains(t('This content is being edited by the user @name and is therefore locked to prevent other users changes.', [
       '@name' => $this->user1->getDisplayName(),
     ]));
 
@@ -286,7 +286,7 @@ class ContentLockTimeoutTest extends BrowserTestBase {
     \Drupal::time()->setCurrentTime(time() + 60 * 60);
     // Lock should be release by form prepare.
     $this->drupalGet($entity->toUrl('edit-form')->toString());
-    $this->assertText(t('This content is now locked against simultaneous editing.'));
+    $this->assertSession()->pageTextContains(t('This content is now locked against simultaneous editing.'));
   }
 
   /**
@@ -303,7 +303,7 @@ class ContentLockTimeoutTest extends BrowserTestBase {
     $this->lockService->locking($entity->id(), $entity->language()->getId(), 'edit', $this->user1->id(), $entity->getEntityTypeId());
     $lock = $this->lockService->fetchLock($entity->id(), $entity->language()->getId(), 'edit', $entity->getEntityTypeId());
     $this->assertNotNull($lock, 'Lock present');
-    $this->assertEqual($this->user1->label(), $lock->name, 'Lock present for correct user.');
+    $this->assertEquals($this->user1->label(), $lock->name, 'Lock present for correct user.');
   }
 
   /**
diff --git a/src/ContentLock/ContentLock.php b/src/ContentLock/ContentLock.php
index 55b23bc..a0b0a80 100644
--- a/src/ContentLock/ContentLock.php
+++ b/src/ContentLock/ContentLock.php
@@ -542,7 +542,7 @@ class ContentLock extends ServiceProviderBase {
    * @return bool
    */
   public function isJsLock($entity_type_id) {
-    return in_array($entity_type_id, $this->config->get("types_js_lock")?: []);
+    return in_array($entity_type_id, $this->config->get("types_js_lock") ?: []);
   }
 
   /**
diff --git a/src/Form/ContentLockSettingsForm.php b/src/Form/ContentLockSettingsForm.php
index 6a6b633..29bb89a 100644
--- a/src/Form/ContentLockSettingsForm.php
+++ b/src/Form/ContentLockSettingsForm.php
@@ -167,7 +167,7 @@ class ContentLockSettingsForm extends ConfigFormBase {
         $form['entities'][$definition->id()]['settings']['translation_lock'] = [
           '#type' => 'checkbox',
           '#title' => $this->t('Lock only on entity translation level.'),
-          '#default_value' => in_array($definition->id(), $config->get('types_translation_lock')?: []),
+          '#default_value' => in_array($definition->id(), $config->get('types_translation_lock') ?: []),
           '#description' => $this->t('Activating this options allows users to edit multiple translations concurrently'),
         ];
         if (!$this->moduleHandler->moduleExists('conflict')) {
@@ -185,7 +185,7 @@ class ContentLockSettingsForm extends ConfigFormBase {
         $form['entities'][$definition->id()]['settings']['js_lock'] = [
           '#type' => 'checkbox',
           '#title' => $this->t('Lock form using JS.'),
-          '#default_value' => in_array($definition->id(), $config->get('types_js_lock')?: []),
+          '#default_value' => in_array($definition->id(), $config->get('types_js_lock') ?: []),
           '#description' => $this->t('Activating this options activates the lock when the user is on the form. This helps if modules interacting with form without a user interacting with the form, like the prefetch_cache module.'),
         ];
 
@@ -240,7 +240,7 @@ class ContentLockSettingsForm extends ConfigFormBase {
           $content_lock->set('types.' . $definition->id(), $this->removeEmptyValue($form_state->getValue([$definition->id(), 'bundles'])));
 
           $translation_lock = (bool) $form_state->getValue([$definition->id(), 'settings', 'translation_lock']);
-          $types_translation_lock = $content_lock->get('types_translation_lock')?:[];
+          $types_translation_lock = $content_lock->get('types_translation_lock') ?: [];
           if ($translation_lock && !in_array($definition->id(), $types_translation_lock)) {
             $types_translation_lock[] = $definition->id();
           }
@@ -250,7 +250,7 @@ class ContentLockSettingsForm extends ConfigFormBase {
           $content_lock->set('types_translation_lock', $types_translation_lock);
 
           $js_lock = (bool) $form_state->getValue([$definition->id(), 'settings', 'js_lock']);
-          $types_js_lock = $content_lock->get('types_js_lock')?:[];
+          $types_js_lock = $content_lock->get('types_js_lock') ?: [];
           if ($js_lock && !in_array($definition->id(), $types_js_lock)) {
             $types_js_lock[] = $definition->id();
           }
diff --git a/src/Plugin/Action/BreakLockDeriver.php b/src/Plugin/Action/BreakLockDeriver.php
index 617d920..e9b76bc 100644
--- a/src/Plugin/Action/BreakLockDeriver.php
+++ b/src/Plugin/Action/BreakLockDeriver.php
@@ -14,7 +14,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
 /**
  * Provides an action deriver that finds content entity types.
  *
- * @TODO: This class should extend EntityActionDeriverBase in D8.5.
+ * @todo This class should extend EntityActionDeriverBase in D8.5.
  */
 class BreakLockDeriver extends DeriverBase implements ContainerDeriverInterface {
 
diff --git a/tests/modules/content_lock_test/config/install/core.entity_form_display.entity_test_mul_changed.entity_test_mul_changed.compact.yml b/tests/modules/content_lock_test/config/install/core.entity_form_display.entity_test_mul_changed.entity_test_mul_changed.compact.yml
index c038074..e3927d2 100644
--- a/tests/modules/content_lock_test/config/install/core.entity_form_display.entity_test_mul_changed.entity_test_mul_changed.compact.yml
+++ b/tests/modules/content_lock_test/config/install/core.entity_form_display.entity_test_mul_changed.entity_test_mul_changed.compact.yml
@@ -19,4 +19,3 @@ content:
       size: 60
       placeholder: ''
     third_party_settings: {  }
-
diff --git a/tests/modules/content_lock_test/content_lock_test.info.yml b/tests/modules/content_lock_test/content_lock_test.info.yml
index d5bcbf0..1ada06a 100644
--- a/tests/modules/content_lock_test/content_lock_test.info.yml
+++ b/tests/modules/content_lock_test/content_lock_test.info.yml
@@ -1,7 +1,6 @@
 name: 'Content lock test'
 type: module
 description: 'Provides test classes.'
-core_version_requirement: ^8.8 || ^9
 package: Testing
 version: VERSION
 dependencies:
diff --git a/tests/modules/content_lock_test/content_lock_test.module b/tests/modules/content_lock_test/content_lock_test.module
index e512821..3a42fc6 100644
--- a/tests/modules/content_lock_test/content_lock_test.module
+++ b/tests/modules/content_lock_test/content_lock_test.module
@@ -1,5 +1,12 @@
 <?php
 
+/**
+ * @file
+ */
+
+/**
+ *
+ */
 function content_lock_test_entity_type_alter(&$entity_types) {
   $entity_types['entity_test_mul_changed']
     ->setLinkTemplate('compact', '/entity_test_mul_changed/manage/{entity_test_mul_changed}/compact')
diff --git a/tests/modules/prefetch_cache_test/prefetch_cache_test.info.yml b/tests/modules/prefetch_cache_test/prefetch_cache_test.info.yml
index 2d25a63..8d77b59 100644
--- a/tests/modules/prefetch_cache_test/prefetch_cache_test.info.yml
+++ b/tests/modules/prefetch_cache_test/prefetch_cache_test.info.yml
@@ -1,7 +1,6 @@
 name: 'Prefetch cache test'
 type: module
 description: 'Provides test classes.'
-core_version_requirement: ^8.8 || ^9
 package: Testing
 version: VERSION
 dependencies:
diff --git a/tests/modules/prefetch_cache_test/prefetch_cache_test.module b/tests/modules/prefetch_cache_test/prefetch_cache_test.module
index 2633c22..a99e967 100644
--- a/tests/modules/prefetch_cache_test/prefetch_cache_test.module
+++ b/tests/modules/prefetch_cache_test/prefetch_cache_test.module
@@ -1,5 +1,9 @@
 <?php
 
+/**
+ * @file
+ */
+
 /**
  * Implements hook_menu_local_tasks_alter().
  */
diff --git a/tests/src/Functional/ContentLockBlockTest.php b/tests/src/Functional/ContentLockBlockTest.php
index e7ff498..c5ec252 100644
--- a/tests/src/Functional/ContentLockBlockTest.php
+++ b/tests/src/Functional/ContentLockBlockTest.php
@@ -16,7 +16,7 @@ class ContentLockBlockTest extends BrowserTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'block_content',
     'content_lock',
diff --git a/tests/src/Functional/ContentLockModesTest.php b/tests/src/Functional/ContentLockModesTest.php
index 526cd4a..4cca788 100644
--- a/tests/src/Functional/ContentLockModesTest.php
+++ b/tests/src/Functional/ContentLockModesTest.php
@@ -17,7 +17,7 @@ class ContentLockModesTest extends ContentLockTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'entity_test',
     'content_lock',
     'content_lock_test',
diff --git a/tests/src/Functional/ContentLockNodeTest.php b/tests/src/Functional/ContentLockNodeTest.php
index 1768f94..a829d23 100644
--- a/tests/src/Functional/ContentLockNodeTest.php
+++ b/tests/src/Functional/ContentLockNodeTest.php
@@ -19,7 +19,7 @@ class ContentLockNodeTest extends BrowserTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'node',
     'content_lock',
   ];
diff --git a/tests/src/Functional/ContentLockTermTest.php b/tests/src/Functional/ContentLockTermTest.php
index 70914a6..72b3549 100644
--- a/tests/src/Functional/ContentLockTermTest.php
+++ b/tests/src/Functional/ContentLockTermTest.php
@@ -17,7 +17,7 @@ class ContentLockTermTest extends BrowserTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'taxonomy',
     'content_lock',
   ];
diff --git a/tests/src/Functional/ContentLockTestBase.php b/tests/src/Functional/ContentLockTestBase.php
index 430f053..833a15c 100644
--- a/tests/src/Functional/ContentLockTestBase.php
+++ b/tests/src/Functional/ContentLockTestBase.php
@@ -14,7 +14,7 @@ abstract class ContentLockTestBase extends BrowserTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'entity_test',
     'content_lock',
   ];
diff --git a/tests/src/Functional/ContentLockTestTrait.php b/tests/src/Functional/ContentLockTestTrait.php
index 295cfce..5299b49 100644
--- a/tests/src/Functional/ContentLockTestTrait.php
+++ b/tests/src/Functional/ContentLockTestTrait.php
@@ -41,7 +41,7 @@ trait ContentLockTestTrait {
   /**
    * {@inheritdoc}
    */
-  protected function setUp() {
+  protected function setUp(): void {
     parent::setUp();
 
     $additional_permissions = [];
diff --git a/tests/src/Functional/ContentLockTranslationTest.php b/tests/src/Functional/ContentLockTranslationTest.php
index 67a9dbc..d520c0e 100644
--- a/tests/src/Functional/ContentLockTranslationTest.php
+++ b/tests/src/Functional/ContentLockTranslationTest.php
@@ -12,7 +12,7 @@ class ContentLockTranslationTest extends ContentLockTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'content_translation',
     'conflict',
     'language',
@@ -23,6 +23,15 @@ class ContentLockTranslationTest extends ContentLockTestBase {
    */
   protected $defaultTheme = 'stark';
 
+  /**
+   * {@inheritdoc}
+   */
+  public function setUp(): void {
+    $this->markTestSkipped(
+      'prefetch_catch is not D10 compatible.'
+    );
+  }
+
   /**
    * Test translation integration.
    */
diff --git a/tests/src/FunctionalJavascript/ContentLockJavascriptTestBase.php b/tests/src/FunctionalJavascript/ContentLockJavascriptTestBase.php
index c45e7a8..1aaaf0b 100644
--- a/tests/src/FunctionalJavascript/ContentLockJavascriptTestBase.php
+++ b/tests/src/FunctionalJavascript/ContentLockJavascriptTestBase.php
@@ -15,7 +15,7 @@ abstract class ContentLockJavascriptTestBase extends WebDriverTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'entity_test',
     'content_lock',
   ];
diff --git a/tests/src/FunctionalJavascript/Integration/PrefetchCacheTest.php b/tests/src/FunctionalJavascript/Integration/PrefetchCacheTest.php
index 739370a..0c402b4 100644
--- a/tests/src/FunctionalJavascript/Integration/PrefetchCacheTest.php
+++ b/tests/src/FunctionalJavascript/Integration/PrefetchCacheTest.php
@@ -6,7 +6,7 @@ use Drupal\Tests\block\Traits\BlockCreationTrait;
 use Drupal\Tests\content_lock\FunctionalJavascript\ContentLockJavascriptTestBase;
 
 /**
- * Class PrefetchCacheTest.
+ * Tests prefetch_cache integration.
  *
  * @group content_lock
  */
@@ -17,7 +17,7 @@ class PrefetchCacheTest extends ContentLockJavascriptTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = [
+  protected static $modules = [
     'block',
     'prefetch_cache_test',
   ];
@@ -30,7 +30,10 @@ class PrefetchCacheTest extends ContentLockJavascriptTestBase {
   /**
    * {@inheritdoc}
    */
-  public function setUp() {
+  public function setUp(): void {
+    $this->markTestSkipped(
+      'prefetch_catch is not D10 compatible.'
+    );
     parent::setUp();
 
     $this->drupalPlaceBlock('local_tasks_block', ['primary' => TRUE]);
