         expect(result).to(beSuccess())
 
         let unwrappedOfferings = try XCTUnwrap(result?.value)
+        expect(unwrappedOfferings.all).to(beEmpty())
         expect(unwrappedOfferings["base"]).to(beNil())
     }
 

                      ])
            ]
        )
        static let unexpectedBackendResponseError: BackendError = .unexpectedBackendResponse(
            .customerInfoNil
        )

        expect(unwrappedOfferings["base"]).toNot(beNil())
        expect(unwrappedOfferings["base"]!.monthly).toNot(beNil())
        expect(unwrappedOfferings["base"]!.monthly?.storeProduct).toNot(beNil())
    }

    func testOfferingsIgnoresProductsNotFoundAndLogsWarning() throws {
        let logger = TestLogHandler()

        // given
        self.mockOfferings.stubbedGetOfferingsCompletionResult = .success(
            MockData.backendOfferingsResponseWithUnknownProducts
        )
        self.mockProductsManager.stubbedProductsCompletionResult = .success([
            StoreProduct(sk1Product: MockSK1Product(mockProductIdentifier: "monthly_freetrial"))
        ])

        // when
        var result: Result<Offerings, OfferingsManager.Error>?
        self.offeringsManager.offerings(appUserID: MockData.anyAppUserID) {
            result = $0
        }

        // then
        expect(result).toEventuallyNot(beNil())

        let offerings = try XCTUnwrap(result?.value)
        expect(offerings.all).to(haveCount(1))
        expect(offerings["base"]).toNot(beNil())
        expect(offerings["base"]!.monthly).toNot(beNil())
        expect(offerings["base"]!.monthly?.storeProduct).toNot(beNil())

        logger.verifyMessageWasLogged(
            Strings.offering.cannot_find_product_configuration_error(identifiers: ["yearly_freetrial"]),
            level: .warn
        )
    }

    func testOfferingsForAppUserIDReturnsNilIfFailBackendRequest() {
