Ensure tests have default-initialized settings (#4498)

Also rework HighlightController test directory creation/saving to ensure the test directory is written to & cleaned up appropriately
This commit is contained in:
pajlada 2023-04-01 13:23:18 +02:00 committed by GitHub
parent 7a081fdcfb
commit 0177ab4829
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 9 deletions

View file

@ -19,6 +19,7 @@
- Dev: Ignore unhandled BTTV user-events. (#4438)
- Dev: Only log debug messages when NDEBUG is not defined. (#4442)
- Dev: Cleaned up theme related code. (#4450)
- Dev: Ensure tests have default-initialized settings. (#4498)
## 2.4.2

View file

@ -140,6 +140,8 @@ Settings::Settings(const QString &settingsDirectory)
Settings &Settings::instance()
{
assert(instance_ != nullptr);
return *instance_;
}

View file

@ -550,14 +550,14 @@ class HighlightControllerTest : public ::testing::Test
protected:
void SetUp() override
{
{
// Write default settings to the mock settings json file
QDir().mkpath("/tmp/c2-tests");
QFile settingsFile("/tmp/c2-tests/settings.json");
assert(settingsFile.open(QIODevice::WriteOnly | QIODevice::Text));
QTextStream out(&settingsFile);
out << DEFAULT_SETTINGS;
}
// Write default settings to the mock settings json file
ASSERT_TRUE(QDir().mkpath("/tmp/c2-tests"));
QFile settingsFile("/tmp/c2-tests/settings.json");
ASSERT_TRUE(settingsFile.open(QIODevice::WriteOnly | QIODevice::Text));
ASSERT_GT(settingsFile.write(DEFAULT_SETTINGS.toUtf8()), 0);
ASSERT_TRUE(settingsFile.flush());
settingsFile.close();
this->mockHelix = new MockHelix;
@ -579,7 +579,7 @@ protected:
void TearDown() override
{
QDir().rmdir("/tmp/c2-tests");
ASSERT_TRUE(QDir("/tmp/c2-tests").removeRecursively());
this->mockApplication.reset();
this->settings.reset();
this->paths.reset();

View file

@ -4,6 +4,7 @@
#include "common/Outcome.hpp"
#include "common/QLogging.hpp"
#include "providers/twitch/api/Helix.hpp"
#include "singletons/Settings.hpp"
#include <gtest/gtest.h>
#include <QApplication>
@ -27,6 +28,9 @@ int main(int argc, char **argv)
chatterino::NetworkManager::init();
// Ensure settings are initialized before any tests are run
chatterino::Settings settings("/tmp/c2-empty-test");
QtConcurrent::run([&app] {
auto res = RUN_ALL_TESTS();