Complete Commonlib rc.6 integration and setup workflows

This commit is contained in:
vorotamoroz
2026-07-21 15:00:28 +00:00
parent e005f9eb13
commit 1ef8c88139
150 changed files with 31041 additions and 260 deletions
@@ -1,7 +1,7 @@
import { getLanguage, requireApiVersion } from "@/deps";
import { createServiceFeature } from "@vrtmrz/livesync-commonlib/compat/interfaces/ServiceModule";
import { SUPPORTED_I18N_LANGS, type I18N_LANGS } from "@vrtmrz/livesync-commonlib/compat/common/rosetta";
import { $msg, __onMissingTranslation, setLang } from "@vrtmrz/livesync-commonlib/compat/common/i18n";
import { SUPPORTED_I18N_LANGS, type I18N_LANGS } from "@/common/rosetta";
import { $msg, __onMissingTranslation, setLang } from "@/common/translation";
import { LOG_LEVEL_VERBOSE } from "octagonal-wheels/common/logger";
function tryGetLanguage(onError: (error: unknown) => void) {
+10 -4
View File
@@ -1,7 +1,10 @@
import { LOG_LEVEL_INFO, LOG_LEVEL_NOTICE, LOG_LEVEL_VERBOSE } from "octagonal-wheels/common/logger";
import type { NecessaryServices } from "@vrtmrz/livesync-commonlib/compat/interfaces/ServiceModule";
import { createInstanceLogFunction, type LogFunction } from "@vrtmrz/livesync-commonlib/compat/services/lib/logUtils";
import { FlagFilesHumanReadable, FlagFilesOriginal } from "@vrtmrz/livesync-commonlib/compat/common/models/redflag.const";
import {
FlagFilesHumanReadable,
FlagFilesOriginal,
} from "@vrtmrz/livesync-commonlib/compat/common/models/redflag.const";
import FetchEverything from "@/modules/features/SetupWizard/dialogs/FetchEverything.svelte";
import RebuildEverything from "@/modules/features/SetupWizard/dialogs/RebuildEverything.svelte";
import { extractObject } from "octagonal-wheels/object";
@@ -15,6 +18,7 @@ import type {
import { askAndPerformFastSetupOnScheduledFetchAll } from "./redFlag.simpleFetch";
import { ConnectionStringParser } from "@vrtmrz/livesync-commonlib/compat/common/ConnectionString";
import { activateRemoteConfiguration } from "@vrtmrz/livesync-commonlib/remote-configurations";
import { isP2PMainRemote } from "@/common/remoteConfiguration";
/**
* Flag file handler interface, similar to target filter pattern.
@@ -382,8 +386,11 @@ export function createRebuildFlagHandler(
// Handle the rebuild everything scheduled operation
const onScheduled = async () => {
const method =
await host.services.UI.dialogManager.openWithExplicitCancel<RebuildEverythingResult>(RebuildEverything);
const settings = host.services.setting.currentSettings();
const method = await host.services.UI.dialogManager.openWithExplicitCancel<
RebuildEverythingResult,
{ isP2P: boolean }
>(RebuildEverything, { isP2P: isP2PMainRemote(settings) });
if (method === "cancelled") {
log("Rebuild everything cancelled by user.", LOG_LEVEL_NOTICE);
await cleanupFlag();
@@ -391,7 +398,6 @@ export function createRebuildFlagHandler(
return false;
}
const { extra } = method;
const settings = host.services.setting.currentSettings();
await adjustSettingToRemoteIfNeeded(host, log, extra, settings);
return await processVaultInitialisation(host, log, async () => {
await host.serviceModules.rebuilder.$rebuildEverything();
+19 -2
View File
@@ -1,8 +1,11 @@
import { describe, it, expect, vi } from "vitest";
import { createServiceContext } from "@vrtmrz/livesync-commonlib/context";
import type { LogFunction } from "@vrtmrz/livesync-commonlib/compat/services/lib/logUtils";
import { FlagFilesHumanReadable, FlagFilesOriginal } from "@vrtmrz/livesync-commonlib/compat/common/models/redflag.const";
import { REMOTE_MINIO } from "@vrtmrz/livesync-commonlib/compat/common/models/setting.const";
import {
FlagFilesHumanReadable,
FlagFilesOriginal,
} from "@vrtmrz/livesync-commonlib/compat/common/models/redflag.const";
import { REMOTE_MINIO, REMOTE_P2P } from "@vrtmrz/livesync-commonlib/compat/common/models/setting.const";
import {
createFetchAllFlagHandler,
createRebuildFlagHandler,
@@ -868,6 +871,20 @@ describe("Red Flag Feature", () => {
});
describe("Rebuild All Flag Handler", () => {
it("identifies P2P when opening the scheduled rebuild confirmation", async () => {
const host = createHostMock();
const log = createLoggerMock();
host.mocks.setting.settings.remoteType = REMOTE_P2P;
host.mocks.storageAccess.files.add(FlagFilesOriginal.REBUILD_ALL);
host.mocks.ui.dialogManager.openWithExplicitCancel.mockResolvedValueOnce("cancelled");
await createRebuildFlagHandler(host as any, log).handle();
expect(host.mocks.ui.dialogManager.openWithExplicitCancel).toHaveBeenCalledWith(expect.anything(), {
isP2P: true,
});
});
it("should detect rebuild all flag using original filename", async () => {
const host = createHostMock();
const log = createLoggerMock();
@@ -6,7 +6,7 @@ import {
} from "@vrtmrz/livesync-commonlib/compat/events/coreEvents";
import { fireAndForget } from "@vrtmrz/livesync-commonlib/compat/common/utils";
import type { NecessaryServices } from "@vrtmrz/livesync-commonlib/compat/interfaces/ServiceModule";
import { $msg } from "@vrtmrz/livesync-commonlib/compat/common/i18n";
import { $msg } from "@/common/translation";
const ONBOARDING_NOTICE_DURATION_MS = 60_000;