* fix: only show connection lost when the server check fails too

* fix: load the macOS tray icon from the right unpacked folder (#1728)

* fix: hide update and review buttons on disabled plugins (#1745)

* fix: save the database without blocking the server, bump to 26.11.0

* fix: try the key before the password for hosts with both (Plugin-SSH-Terminal#50)

* fix: add macOS Window menu item to reopen main window

* feat: upload Mac App Store screenshots on submit

* chore: drop internal note from changelog

* chore: update translations and plugin pins

* chore: lint, format, and bump version to 26.11.0
This commit is contained in:
Luke Gustafson authored and GitHub committed 2026-11-01 17:16:04 -06:00
1 parent c759a147c6
commit 1d4eac3e20
24 files changed
+337 -56

No files matched your search

@@ -1,7 +1,33 @@
import { afterEach, describe, expect, it, vi } from "vitest";
import { DatabaseSaveTrigger } from "../../utils/database-save-trigger.js";
import {
DatabaseSaveTrigger,
lazySaveGapMs,
} from "../../utils/database-save-trigger.js";
describe("lazySaveGapMs", () => {
it("waits longer after slow saves, within limits", () => {
expect(lazySaveGapMs(0)).toBe(30_000);
expect(lazySaveGapMs(2_000)).toBe(60_000);
expect(lazySaveGapMs(60_000)).toBe(300_000);
});
});
describe("DatabaseSaveTrigger", () => {
it("stays dirty when a write lands while a save is running", async () => {
let finish: () => void = () => {};
const save = vi.fn(
() => new Promise<void>((resolve) => (finish = resolve)),
);
DatabaseSaveTrigger.initialize(save);
DatabaseSaveTrigger.markDirty();
const running = DatabaseSaveTrigger.forceSave("first");
await new Promise((resolve) => setImmediate(resolve));
DatabaseSaveTrigger.markDirty();
finish();
await running;
expect(DatabaseSaveTrigger.isDirty).toBe(true);
});
afterEach(() => {
vi.useRealTimers();
DatabaseSaveTrigger.cleanup();