diff --git a/composer.json b/composer.json
index 32d52e3..65d716c 100644
--- a/composer.json
+++ b/composer.json
@@ -5,7 +5,7 @@
   "license": "GPL-2.0-or-later",
   "minimum-stability": "dev",
   "require": {
-    "drupal/core": "^8.7.7 || ^9",
-    "drupal/scheduler": "^1.1"
+    "drupal/scheduler": "^1.1",
+    "drupal/core": "^8.7.7 || ^9 || ^10"
   }
 }
diff --git a/scheduler_content_moderation_integration.info.yml b/scheduler_content_moderation_integration.info.yml
index 1019082..7100734 100644
--- a/scheduler_content_moderation_integration.info.yml
+++ b/scheduler_content_moderation_integration.info.yml
@@ -1,7 +1,7 @@
 name: Scheduler Content Moderation Integration
 type: module
 description: 'Scheduler sub-module providing content moderation functionality for publishing/unpublishing.'
-core_version_requirement: ^8.7.7 || ^9
+core_version_requirement: ^8.7.7 || ^9 || ^10
 dependencies:
   - drupal:options
   - drupal:content_moderation
diff --git a/tests/src/Functional/FormsTest.php b/tests/src/Functional/FormsTest.php
index f9b555b..dee7048 100644
--- a/tests/src/Functional/FormsTest.php
+++ b/tests/src/Functional/FormsTest.php
@@ -148,7 +148,7 @@ class FormsTest extends SchedulerContentModerationBrowserTestBase {
 
     // Check that both state fields are shown by default.
     $this->drupalGet($url);
-    $this->assertResponse(200, "The $operation form is displayed without error");
+    $this->assertSession()->statusCodeEquals(200, "The $operation form is displayed without error");
     $assert->FieldExists('publish_state[0]');
     $assert->FieldExists('unpublish_state[0]');
 
@@ -164,7 +164,7 @@ class FormsTest extends SchedulerContentModerationBrowserTestBase {
 
     // Check that both state fields are now hidden.
     $this->drupalGet($url);
-    $this->assertResponse(200, "The $operation form is displayed without error");
+    $this->assertSession()->statusCodeEquals(200, "The $operation form is displayed without error");
     $assert->FieldNotExists('publish_state[0]');
     $assert->FieldNotExists('unpublish_state[0]');
   }
diff --git a/tests/src/Functional/SchedulerContentModerationBrowserTestBase.php b/tests/src/Functional/SchedulerContentModerationBrowserTestBase.php
index 830306a..c383ea0 100644
--- a/tests/src/Functional/SchedulerContentModerationBrowserTestBase.php
+++ b/tests/src/Functional/SchedulerContentModerationBrowserTestBase.php
@@ -39,7 +39,7 @@ abstract class SchedulerContentModerationBrowserTestBase extends BrowserTestBase
   /**
    * {@inheritdoc}
    */
-  protected function setUp() {
+  protected function setUp(): void {
     parent::setUp();
 
     $this->drupalCreateContentType([
diff --git a/tests/src/Functional/TransitionAccessTest.php b/tests/src/Functional/TransitionAccessTest.php
index c713148..c8b0e3a 100644
--- a/tests/src/Functional/TransitionAccessTest.php
+++ b/tests/src/Functional/TransitionAccessTest.php
@@ -92,7 +92,7 @@ class TransitionAccessTest extends SchedulerContentModerationBrowserTestBase {
       'publish_state[0]' => 'published',
     ];
     $this->drupalGet("$entityTypeId/{$entity->id()}/edit");
-    $this->assertResponse(200, 'Scheduler user should be able to edit the entity."');
+    $this->assertSession()->statusCodeEquals(200, 'Scheduler user should be able to edit the entity."');
     $this->submitForm($edit, 'Save');
 
     $this->assertSession()
@@ -102,7 +102,7 @@ class TransitionAccessTest extends SchedulerContentModerationBrowserTestBase {
     // editing access should be denied.
     $this->drupalLogin($restrictedUser);
     $this->drupalGet("$entityTypeId/{$entity->id()}/edit");
-    $this->assertResponse(403, 'Restricted user should not be able to edit the entity."');
+    $this->assertSession()->statusCodeEquals(403, 'Restricted user should not be able to edit the entity."');
 
     // Remove scheduling info.
     $this->drupalLogin($schedulerUser);
@@ -118,7 +118,7 @@ class TransitionAccessTest extends SchedulerContentModerationBrowserTestBase {
     // (using 'create_new_draft' transition).
     $this->drupalLogin($restrictedUser);
     $this->drupalGet("$entityTypeId/{$entity->id()}/edit");
-    $this->assertResponse(200, 'Restricted user should be able to edit the entity."');
+    $this->assertSession()->statusCodeEquals(200, 'Restricted user should be able to edit the entity."');
     $this->submitForm([], 'Save');
     $this->assertSession()->pageTextContains(sprintf('%s has been updated.', $entity->label()));
 
@@ -131,7 +131,7 @@ class TransitionAccessTest extends SchedulerContentModerationBrowserTestBase {
       'unpublish_state[0]' => 'archived',
     ];
     $this->drupalGet("$entityTypeId/{$entity->id()}/edit");
-    $this->assertResponse(200, 'Scheduler user should be able to edit the entity."');
+    $this->assertSession()->statusCodeEquals(200, 'Scheduler user should be able to edit the entity."');
     $this->submitForm($edit, 'Save');
 
     $this->assertSession()
@@ -141,7 +141,7 @@ class TransitionAccessTest extends SchedulerContentModerationBrowserTestBase {
     // editing access should be denied.
     $this->drupalLogin($restrictedUser);
     $this->drupalGet("$entityTypeId/{$entity->id()}/edit");
-    $this->assertResponse(403, 'Restricted user should not be able to edit the entity."');
+    $this->assertSession()->statusCodeEquals(403, 'Restricted user should not be able to edit the entity."');
 
     // Remove scheduling info.
     $this->drupalLogin($schedulerUser);
@@ -155,7 +155,7 @@ class TransitionAccessTest extends SchedulerContentModerationBrowserTestBase {
     // Check entity is editable by restricted user when there is no scheduling.
     $this->drupalLogin($restrictedUser);
     $this->drupalGet("$entityTypeId/{$entity->id()}/edit");
-    $this->assertResponse(200, 'Restricted user should be able to edit the entity."');
+    $this->assertSession()->statusCodeEquals(200, 'Restricted user should be able to edit the entity."');
     $this->submitForm([], 'Save');
     $this->assertSession()->pageTextContains(sprintf('%s has been updated.', $entity->label()));
   }
diff --git a/tests/src/Kernel/HookImplementationTest.php b/tests/src/Kernel/HookImplementationTest.php
index 1f625c5..1366e9c 100644
--- a/tests/src/Kernel/HookImplementationTest.php
+++ b/tests/src/Kernel/HookImplementationTest.php
@@ -28,7 +28,7 @@ class HookImplementationTest extends SchedulerContentModerationTestBase {
   /**
    * {@inheritdoc}
    */
-  public function setUp() {
+  public function setUp(): void {
     parent::setUp();
 
     // Create a user which has any permission required.
diff --git a/tests/src/Kernel/PublishedStateConstraintTest.php b/tests/src/Kernel/PublishedStateConstraintTest.php
index bfd5984..886020d 100644
--- a/tests/src/Kernel/PublishedStateConstraintTest.php
+++ b/tests/src/Kernel/PublishedStateConstraintTest.php
@@ -16,7 +16,7 @@ class PublishedStateConstraintTest extends SchedulerContentModerationTestBase {
   /**
    * {@inheritdoc}
    */
-  protected function setUp() {
+  protected function setUp(): void {
     parent::setUp();
 
     $user = $this->createMock('Drupal\Core\Session\AccountInterface');
diff --git a/tests/src/Kernel/SchedulerContentModerationTestBase.php b/tests/src/Kernel/SchedulerContentModerationTestBase.php
index 8077807..4c8fa89 100644
--- a/tests/src/Kernel/SchedulerContentModerationTestBase.php
+++ b/tests/src/Kernel/SchedulerContentModerationTestBase.php
@@ -62,7 +62,7 @@ abstract class SchedulerContentModerationTestBase extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  protected function setUp() {
+  protected function setUp(): void {
     parent::setUp();
 
     $this->installSchema('node', 'node_access');
diff --git a/tests/src/Kernel/UnPublishedStateConstraintTest.php b/tests/src/Kernel/UnPublishedStateConstraintTest.php
index 0c53063..caa8650 100644
--- a/tests/src/Kernel/UnPublishedStateConstraintTest.php
+++ b/tests/src/Kernel/UnPublishedStateConstraintTest.php
@@ -16,7 +16,7 @@ class UnPublishedStateConstraintTest extends SchedulerContentModerationTestBase
   /**
    * {@inheritdoc}
    */
-  protected function setUp() {
+  protected function setUp(): void {
     parent::setUp();
 
     $user = $this->createMock('Drupal\Core\Session\AccountInterface');
