diff --git a/tests/src/FunctionalJavascript/ShipmentAdminTest.php b/tests/src/FunctionalJavascript/ShipmentAdminTest.php
index ea1138c..0f8b598 100644
--- a/tests/src/FunctionalJavascript/ShipmentAdminTest.php
+++ b/tests/src/FunctionalJavascript/ShipmentAdminTest.php
@@ -8,6 +8,7 @@ use Drupal\commerce_price\Price;
 use Drupal\commerce_product\Entity\ProductVariationType;
 use Drupal\commerce_shipping\Entity\Shipment;
 use Drupal\commerce_shipping\ShipmentItem;
+use Drupal\Core\Test\AssertMailTrait;
 use Drupal\Core\Url;
 use Drupal\physical\Weight;
 use Drupal\Tests\commerce\FunctionalJavascript\CommerceWebDriverTestBase;
@@ -19,6 +20,7 @@ use Drupal\views\Entity\View;
  * @group commerce_shipping
  */
 class ShipmentAdminTest extends CommerceWebDriverTestBase {
+  use AssertMailTrait;
 
   /**
    * A sample order.
@@ -151,6 +153,7 @@ class ShipmentAdminTest extends CommerceWebDriverTestBase {
     return array_merge([
       'administer commerce_order',
       'administer commerce_shipment',
+      'administer commerce_shipment_type',
       'access commerce_order overview',
     ], parent::getAdministratorPermissions());
   }
@@ -382,4 +385,53 @@ class ShipmentAdminTest extends CommerceWebDriverTestBase {
     $this->assertSession()->pageTextContains('There are no shipments yet.');
   }
 
+  /**
+   * Tests shipment notification email.
+   */
+  public function testShipmentNotificationEmail() {
+    $page = $this->getSession()->getPage();
+
+    // Enable email confirmation and set bcc address.
+    $this->drupalGet('/admin/commerce/config/shipment-types/default/edit');
+    $edit = [
+      'sendConfirmation' => 1,
+      'confirmationBcc' => 'testBcc@shipping.com',
+    ];
+    $this->submitForm($edit, 'Save');
+
+    // Add Shipment.
+    $this->drupalGet($this->shipmentUri);
+    $page->clickLink('Add shipment');
+    $page->fillField('title[0][value]', 'Test shipment');
+    $page->checkField('shipment_items[1]');
+    $address = [
+      'given_name' => 'John',
+      'family_name' => 'Smith',
+      'address_line1' => '1098 Alta Ave',
+      'locality' => 'Mountain View',
+      'administrative_area' => 'CA',
+      'postal_code' => '94043',
+    ];
+    foreach ($address as $property => $value) {
+      $page->fillField('shipping_profile[0][profile][address][0][address]' . '[' . $property . ']', $value);
+    }
+    $page->fillField('tracking_code[0][value]', 'A1234567890');
+    $this->submitForm([], 'Save');
+
+    // Email is triggered at Send shipment step.
+    $page->findButton('Finalize shipment')->click();
+    $page->findButton('Send shipment')->click();
+
+    // Test email content.
+    $email = current($this->getMails());
+    $this->assertEquals('testBcc@shipping.com', $email['headers']['Bcc']);
+    $this->assertEquals('Item(s) for Order #' . $this->order->getOrderNumber() . ' shipped!', $email['subject']);
+    $this->assertContains('John Smith', $email['body']);
+    $this->assertContains('1098 Alta Ave', $email['body']);
+    $this->assertContains('Mountain View, CA', $email['body']);
+    $this->assertContains('94043', $email['body']);
+    $this->assertContains('Tracking information:', $email['body']);
+    $this->assertContains('A1234567890', $email['body']);
+  }
+
 }
