diff --git a/CMakeLists.txt b/CMakeLists.txt index 06ca9de..685cc9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,9 @@ target_include_directories(Catch INTERFACE ${CATCH_INCLUDE_DIR}) set(TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/tests/main.cpp ${CMAKE_CURRENT_SOURCE_DIR}/tests/extensions.cpp ${CMAKE_CURRENT_SOURCE_DIR}/tests/assignment.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/tests/emplace.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/tests/bases.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/tests/observers.cpp ${CMAKE_CURRENT_SOURCE_DIR}/tests/constructors.cpp) add_executable(tests ${TEST_SOURCES}) diff --git a/tests/extensions.cpp b/tests/extensions.cpp index c7e1934..ecd1c92 100644 --- a/tests/extensions.cpp +++ b/tests/extensions.cpp @@ -130,6 +130,15 @@ TEST_CASE("Map extensions", "[extensions.map]") { STATIC_REQUIRE( (std::is_same>::value)); } + + + // mapping functions which return references + { + tl::expected e(42); + auto ret = e.map([](int& i) -> int& { return i; }); + REQUIRE(ret); + REQUIRE(ret == 42); + } } TEST_CASE("Map error extensions", "[extensions.map_error]") { @@ -239,6 +248,7 @@ TEST_CASE("Map error extensions", "[extensions.map_error]") { auto ret = std::move(e).map_error(ret_void); REQUIRE(!ret); } + } TEST_CASE("And then extensions", "[extensions.and_then]") {