fix(desktop): show notebook not empty delete message

This commit is contained in:
tianma-if committed 2026-10-07 23:29:56 +08:00
1 parent 08f645686d
commit effd08fed7
2 files changed
+10 -2

No files matched your search

+7 -1
View File
@@ -1,5 +1,11 @@
import { describe, expect, test } from "bun:test";
import { notebookDeleteIdsFromPayload, notebooksBlockedByPendingDeletes } from "./notebook-delete.ts";
import { isNotebookNotEmptyError, notebookDeleteIdsFromPayload, notebooksBlockedByPendingDeletes } from "./notebook-delete.ts";
test("recognizes a notebook with notes through Electron's IPC error wrapper", () => {
expect(isNotebookNotEmptyError(new Error("notebook_not_empty"))).toBe(true);
expect(isNotebookNotEmptyError(new Error("Error invoking remote method 'desktop:sidecar-request': Error: notebook_not_empty"))).toBe(true);
expect(isNotebookNotEmptyError(new Error("Error invoking remote method 'desktop:sidecar-request': Error: database is busy"))).toBe(false);
});
describe("notebook delete ids", () => {
test("uses the ordered descendant list and falls back to the single id", () => {
+3 -1
View File
@@ -12,7 +12,9 @@ export const isNotebookNotEmptyError = (error: unknown) => {
if (typeof error === "object" && error !== null && "code" in error && (error as { code?: unknown }).code === "notebook_not_empty") {
return true;
}
return error instanceof Error && error.message === "notebook_not_empty";
// Electron prefixes errors thrown by the sidecar IPC handler, for example:
// Error invoking remote method 'desktop:sidecar-request': Error: notebook_not_empty
return error instanceof Error && /(?:^|:\s*)notebook_not_empty$/.test(error.message.trim());
};
export const notebookDeleteIdsFromPayload = (