refactor: Settings::logLevelToInt simplify the method and add tests to cover it

This commit is contained in:
sithlord48
2025-12-16 22:02:25 -05:00
committed by Nick Bolton
parent 425d427fce
commit d8e2537d47
4 changed files with 26 additions and 34 deletions

View File

@ -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<int>(m_logLevels.indexOf(level, 0, Qt::CaseInsensitive));
}
QVariant Settings::defaultValue(const QString &key)

View File

@ -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:

View File

@ -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)

View File

@ -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");