From 2f7f44936720539bfb236289185c0539b70e70d1 Mon Sep 17 00:00:00 2001 From: amirsojoodi Date: Mon, 29 Dec 2025 01:24:41 -0500 Subject: [PATCH] Add unit test for customized width for help --- test/options.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/options.cpp b/test/options.cpp index 6df4972..99f11e2 100644 --- a/test/options.cpp +++ b/test/options.cpp @@ -1191,3 +1191,39 @@ TEST_CASE("No Options help", "[options]") CHECK_NOTHROW(options.parse(argc, argv)); CHECK(options.help().find("test ...") != std::string::npos); } + +TEST_CASE("Format custom message with selected width", "[help]") +{ + cxxopts::Options options("Custom message width", + " - test custom message formatting width"); + + options.custom_help( + "A very very long description that should be wrapped according to the " + "specified width for help messages. This is to ensure that lines are not " + "very long and remain readable. Just to make sure we have enough text here " + "to trigger the wrapping functionality properly. Let's add a bit more text " + "to be certain!"); + + options.set_width(60); + const auto help = options.help(); + CHECK( + help.find( + "Custom message width A very very long description that \n should " + "be wrapped according to the specified width for \n help messages. " + "This is to ensure that lines are not very \n long and remain " + "readable. Just to make sure we have \n enough text here to trigger " + "the wrapping functionality \n properly. Let's add a bit more text " + "to be certain!") != std::string::npos); + + options.set_width(90); + const auto help90 = options.help(); + CHECK( + help90.find( + "Custom message width A very very long description that should be " + "wrapped according to \n the specified width for help messages. " + "This is to ensure that lines are not very long \n and remain " + "readable. Just to make sure we have enough text here to trigger the " + "wrapping \n functionality properly. Let's add a bit more text to " + "be certain!") != + std::string::npos); +} \ No newline at end of file