// Copyright 2004-present Facebook. All Rights Reserved. #include #include #include #include using namespace facebook::react::detail; TEST(RecoverableError, RunRethrowingAsRecoverableRecoverTest) { try { RecoverableError::runRethrowingAsRecoverable([]() { throw std::runtime_error("catch me"); }); FAIL() << "Unthrown exception"; } catch (const RecoverableError &err) { ASSERT_STREQ(err.what(), "facebook::react::Recoverable: catch me"); } catch (...) { FAIL() << "Uncaught exception"; } } TEST(RecoverableError, RunRethrowingAsRecoverableFallthroughTest) { try { RecoverableError::runRethrowingAsRecoverable([]() { throw std::logic_error("catch me"); }); FAIL() << "Unthrown exception"; } catch (const RecoverableError &err) { FAIL() << "Recovered exception that should have fallen through"; } catch (const std::exception &err) { ASSERT_STREQ(err.what(), "catch me"); } }