Files
NetMesh/application/state/startupLandingSettings.test.ts

59 lines
2.8 KiB
TypeScript
Raw Normal View History

import test from "node:test";
import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
test("startup landing setting participates in cross-window settings sync", () => {
const storageSyncSource = readFileSync(new URL("./settingsStorageSync.ts", import.meta.url), "utf8");
const ipcSyncSource = readFileSync(new URL("./settingsIpcSync.ts", import.meta.url), "utf8");
assert.match(storageSyncSource, /STORAGE_KEY_STARTUP_LANDING/);
assert.match(storageSyncSource, /setStartupLandingState/);
assert.match(storageSyncSource, /e\.key === STORAGE_KEY_STARTUP_LANDING/);
assert.match(ipcSyncSource, /STORAGE_KEY_STARTUP_LANDING/);
assert.match(ipcSyncSource, /setStartupLandingState/);
assert.match(ipcSyncSource, /key === STORAGE_KEY_STARTUP_LANDING/);
});
test("startup landing does not bump the cloud sync settings version", () => {
const settingsSource = readFileSync(new URL("./useSettingsState.ts", import.meta.url), "utf8");
const settingsVersionIndex = settingsSource.indexOf("settingsVersion: useMemo");
const settingsVersionSource = settingsSource.slice(settingsVersionIndex);
assert.notEqual(settingsVersionIndex, -1);
assert.doesNotMatch(settingsVersionSource, /startupLanding/);
});
test("main window opens local terminal on cold start when preferred", () => {
const sideEffectsSource = readFileSync(new URL("../app/AppSideEffects.tsx", import.meta.url), "utf8");
assert.match(sideEffectsSource, /startupLocalTerminalAttemptedRef/);
assert.match(sideEffectsSource, /shouldOpenLocalTerminalOnStartup/);
assert.match(sideEffectsSource, /STORAGE_KEY_STARTUP_LANDING/);
assert.match(sideEffectsSource, /handleCreateLocalTerminal\(/);
assert.match(sideEffectsSource, /onColdStartIntentsSettled/);
assert.match(sideEffectsSource, /ensureDiscoveredShells/);
assert.match(sideEffectsSource, /hasQueuedStartupIntent:\s*startupLaunchIntentReceivedRef\.current/);
const latchAt = sideEffectsSource.indexOf("if (startupLocalTerminalAttemptedRef.current) return;");
const setLatchAt = sideEffectsSource.indexOf(
"startupLocalTerminalAttemptedRef.current = true;",
latchAt,
);
const createAt = sideEffectsSource.indexOf("handleCreateLocalTerminal(", setLatchAt);
assert.notEqual(latchAt, -1);
assert.notEqual(setLatchAt, -1);
assert.notEqual(createAt, -1);
assert.ok(setLatchAt < createAt, "StrictMode latch must be set before creating the terminal");
});
test("settings system tab exposes startup landing control", () => {
const tabSource = readFileSync(
new URL("../../components/settings/tabs/SettingsSystemTab.tsx", import.meta.url),
"utf8",
);
assert.match(tabSource, /system-startup-landing/);
assert.match(tabSource, /settings\.sessionRestore\.startupLanding/);
assert.match(tabSource, /local-terminal/);
});