diff --git a/bmc/test/firmware_multiplebundle_unittest.cpp b/bmc/test/firmware_multiplebundle_unittest.cpp
index b8d738d..2c450f4 100644
--- a/bmc/test/firmware_multiplebundle_unittest.cpp
+++ b/bmc/test/firmware_multiplebundle_unittest.cpp
@@ -33,7 +33,7 @@
         blobs = {
             {hashBlobId, &hashImageMock},
             {staticLayoutBlobId, &staticImageMock},
-            {biosId, &biosImageMock},
+            {biosBlobId, &biosImageMock},
         };
 
         std::unique_ptr<TriggerableActionInterface> bmcPrepareMock =
@@ -77,7 +77,7 @@
         biosPack->update = std::move(biosUpdateMock);
 
         packs[staticLayoutBlobId] = std::move(bmcPack);
-        packs[biosId] = std::move(biosPack);
+        packs[biosBlobId] = std::move(biosPack);
 
         handler = FirmwareBlobHandler::CreateFirmwareBlobHandler(
             blobs, data, std::move(packs));
@@ -103,8 +103,6 @@
     std::uint16_t session = 1;
     std::uint16_t flags =
         blobs::OpenFlags::write | FirmwareFlags::UpdateFlags::ipmi;
-
-    const std::string biosId = "/flash/bios";
 };
 
 TEST_F(IpmiOnlyTwoFirmwaresTest, OpeningBiosAfterBlobFails)
@@ -124,8 +122,8 @@
 
     expectedState(FirmwareBlobHandler::UpdateState::verificationPending);
 
-    EXPECT_CALL(biosImageMock, open(biosId)).Times(0);
-    EXPECT_FALSE(handler->open(session, flags, biosId));
+    EXPECT_CALL(biosImageMock, open(biosBlobId)).Times(0);
+    EXPECT_FALSE(handler->open(session, flags, biosBlobId));
 }
 
 TEST_F(IpmiOnlyTwoFirmwaresTest, OpeningHashBeforeBiosSucceeds)
@@ -142,8 +140,8 @@
     expectedState(FirmwareBlobHandler::UpdateState::verificationPending);
     ASSERT_FALSE(handler->canHandleBlob(verifyBlobId));
 
-    EXPECT_CALL(biosImageMock, open(biosId)).WillOnce(Return(true));
-    EXPECT_TRUE(handler->open(session, flags, biosId));
+    EXPECT_CALL(biosImageMock, open(biosBlobId)).WillOnce(Return(true));
+    EXPECT_TRUE(handler->open(session, flags, biosBlobId));
 
     expectedState(FirmwareBlobHandler::UpdateState::uploadInProgress);
 
