Фаза 1: мастер первого запуска — SettingsStore, GitManager (auto-init+коммиты), SyncManager (проверка соединений+ErrorCatalog), WelcomeWizard/ProviderSetupGuide; тесты smoke/git/vault (12/12)
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
// Интеграционный тест Фазы 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;
|
||||
}
|
||||
Reference in New Issue
Block a user