Files

63 lines
2.1 KiB
C++
Raw Permalink Normal View History

// Интеграционный тест Фазы 1: SettingsStore + VaultManager + GitManager.
// Используем временную папку для QSettings (INI-формат), чтобы не трогать реальные.
#include <QCoreApplication>
#include <QTemporaryDir>
#include <QDir>
#include <QSettings>
#include <cstdio>
#include "app/VaultManager.h"
#include "core/SettingsStore.h"
#include "git/GitManager.h"
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
app.setOrganizationName("FloraTest");
app.setApplicationName("flora_test");
QTemporaryDir dir;
QSettings::setPath(QSettings::IniFormat, QSettings::UserScope, dir.path());
{
SettingsStore settings;
GitManager git;
VaultManager vault(&settings, &git);
const QString vaultPath = dir.path() + "/vault";
const QString err = vault.createVault(vaultPath);
if (!err.isEmpty()) {
std::fprintf(stderr, "FAIL: createVault: %s\n", qPrintable(err));
return 1;
}
if (!settings.hasVault(vaultPath) || settings.currentVault() != vaultPath) {
std::fprintf(stderr, "FAIL: хранилище не сохранено\n");
return 1;
}
if (!git.hasCommits(vaultPath)) {
// коммитов может ещё не быть (нет файлов) — инициализация должна пройти
}
if (vault.vaults().isEmpty()) {
std::fprintf(stderr, "FAIL: список хранилищ пуст\n");
return 1;
}
const QString bad = vault.createVault("");
if (bad.isEmpty()) {
std::fprintf(stderr, "FAIL: пустой путь не отклонён\n");
return 1;
}
}
{
// Проверка персистентности в другом экземпляре
SettingsStore settings;
if (!settings.hasVault(dir.path() + "/vault")) {
std::fprintf(stderr, "FAIL: настройки не сохранились\n");
return 1;
}
}
std::printf("VAULT TEST OK\n");
return 0;
}