mirror of
https://github.com/XRPLF/clio.git
synced 2026-08-21 12:40:51 +00:00
fix: Workaround an edge case exception in AmendmentCenter (#2897)
Fixes #2881 Better fix, including removal of exceptions for control flow will be done in #2895
This commit is contained in:
@@ -104,16 +104,13 @@ TEST_F(AmendmentCenterTest, IsMultipleEnabled)
|
||||
});
|
||||
}
|
||||
|
||||
TEST_F(AmendmentCenterTest, IsEnabledThrowsWhenUnavailable)
|
||||
TEST_F(AmendmentCenterTest, IsEnabledReturnsFalseWhenAmendmentsLedgerObjectUnavailable)
|
||||
{
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject(ripple::keylet::amendments().key, kSEQ, testing::_))
|
||||
.WillOnce(testing::Return(std::nullopt));
|
||||
|
||||
runSpawn([this](auto yield) {
|
||||
EXPECT_THROW(
|
||||
{ [[maybe_unused]] auto const result = amendmentCenter.isEnabled(yield, "irrelevant", kSEQ); },
|
||||
std::runtime_error
|
||||
);
|
||||
EXPECT_NO_THROW(EXPECT_FALSE(amendmentCenter.isEnabled(yield, "irrelevant", kSEQ)));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -126,6 +123,21 @@ TEST_F(AmendmentCenterTest, IsEnabledReturnsFalseWhenNoAmendments)
|
||||
runSpawn([this](auto yield) { EXPECT_FALSE(amendmentCenter.isEnabled(yield, "irrelevant", kSEQ)); });
|
||||
}
|
||||
|
||||
TEST_F(AmendmentCenterTest, IsEnabledReturnsVectorOfFalseWhenAmendmentsLedgerObjectUnavailable)
|
||||
{
|
||||
EXPECT_CALL(*backend_, doFetchLedgerObject(ripple::keylet::amendments().key, kSEQ, testing::_))
|
||||
.WillOnce(testing::Return(std::nullopt));
|
||||
|
||||
runSpawn([this](auto yield) {
|
||||
std::vector<data::AmendmentKey> const keys{"fixUniversalNumber", "ImmediateOfferKilled"};
|
||||
std::vector<bool> vec;
|
||||
EXPECT_NO_THROW(vec = amendmentCenter.isEnabled(yield, keys, kSEQ));
|
||||
|
||||
EXPECT_EQ(vec.size(), keys.size());
|
||||
EXPECT_TRUE(std::ranges::all_of(vec, std::logical_not<>{}));
|
||||
});
|
||||
}
|
||||
|
||||
TEST_F(AmendmentCenterTest, IsEnabledReturnsVectorOfFalseWhenNoAmendments)
|
||||
{
|
||||
auto const amendments = createBrokenAmendmentsObject();
|
||||
|
||||
Reference in New Issue
Block a user