From d8e2537d47269dc00bc744ab8ecbac224e95cdef Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Tue, 16 Dec 2025 22:02:25 -0500 Subject: [PATCH] refactor: Settings::logLevelToInt simplify the method and add tests to cover it --- src/lib/common/Settings.cpp | 35 ++------------------------ src/lib/common/Settings.h | 2 +- src/unittests/common/SettingsTests.cpp | 21 ++++++++++++++++ src/unittests/common/SettingsTests.h | 2 ++ 4 files changed, 26 insertions(+), 34 deletions(-) diff --git a/src/lib/common/Settings.cpp b/src/lib/common/Settings.cpp index c0adc1e90..6c092c232 100644 --- a/src/lib/common/Settings.cpp +++ b/src/lib/common/Settings.cpp @@ -139,40 +139,9 @@ QString Settings::cleanScreenName(const QString &name) int Settings::logLevelToInt(const QString &level) { - // Can do this better later ? - if (level.toUpper() == "FATAL") { - return 0; - } - - if (level.toUpper() == "ERROR") { - return 1; - } - - if (level.toUpper() == "WARNING") { - return 2; - } - - if (level.toUpper() == "NOTE") { - return 3; - } - - if (level.toUpper() == "INFO") { + if (level.isEmpty() || !m_logLevels.contains(level, Qt::CaseInsensitive)) return 4; - } - - if (level.toUpper() == "DEBUG") { - return 5; - } - - if (level.toUpper() == "DEBUG1") { - return 6; - } - - if (level.toUpper() == "DEBUG2") { - return 7; - } - - return 4; // If all else fail return info + return static_cast(m_logLevels.indexOf(level, 0, Qt::CaseInsensitive)); } QVariant Settings::defaultValue(const QString &key) diff --git a/src/lib/common/Settings.h b/src/lib/common/Settings.h index ebcaec914..ad68f3972 100644 --- a/src/lib/common/Settings.h +++ b/src/lib/common/Settings.h @@ -136,7 +136,7 @@ public: static QSettingsProxy &proxy(); static void save(bool emitSaving = true); static QStringList validKeys(); - static int logLevelToInt(const QString &level = "INFO"); + static int logLevelToInt(const QString &level); static QString portableSettingsFile(); Q_SIGNALS: diff --git a/src/unittests/common/SettingsTests.cpp b/src/unittests/common/SettingsTests.cpp index 42af8e56f..53a65b627 100644 --- a/src/unittests/common/SettingsTests.cpp +++ b/src/unittests/common/SettingsTests.cpp @@ -101,4 +101,25 @@ void SettingsTests::checkCleanScreenName_LongName() QCOMPARE(Settings::value(Settings::Core::ScreenName).toString(), expected); } +void SettingsTests::checkLogLevels_Valid() +{ + QCOMPARE(Settings::logLevelToInt(QStringLiteral("Fatal")), 0); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("erRor")), 1); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("wArning")), 2); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("notE")), 3); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("info")), 4); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("deBug")), 5); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("debuG1")), 6); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("dEbug2")), 7); +} + +void SettingsTests::checkLogLevels_Invalid() +{ + QCOMPARE(Settings::logLevelToInt(QString()), 4); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("INVALID")), 4); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("debug3")), 4); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("infomatic")), 4); + QCOMPARE(Settings::logLevelToInt(QStringLiteral("warn")), 4); +} + QTEST_MAIN(SettingsTests) diff --git a/src/unittests/common/SettingsTests.h b/src/unittests/common/SettingsTests.h index 6f3f18695..08ea607df 100644 --- a/src/unittests/common/SettingsTests.h +++ b/src/unittests/common/SettingsTests.h @@ -24,6 +24,8 @@ private Q_SLOTS: void checkValidSettings(); void checkCleanScreenName(); void checkCleanScreenName_LongName(); + void checkLogLevels_Valid(); + void checkLogLevels_Invalid(); private: inline static const QString m_settingsPathTemp = QStringLiteral("tmp/test");