diff --git a/apps/desktop/test/desktop-browser-view-manager.test.ts b/apps/desktop/test/desktop-browser-view-manager.test.ts index 0066dd69a..31766f9ad 100644 --- a/apps/desktop/test/desktop-browser-view-manager.test.ts +++ b/apps/desktop/test/desktop-browser-view-manager.test.ts @@ -2131,6 +2131,29 @@ describe("DesktopBrowserViewManager", () => { expect(snapshots).toHaveLength(4); }); + it.each(["visibility", "destroyed", "detach"] as const)( + "tolerates a missing guest during %s", + (operation) => { + const { manager, hostWindow, view } = createRendererRecoveryFixture(94); + const guest = view.webContents; + if (operation !== "destroyed") guest.destroyed = true; + Object.defineProperty(view, "webContents", { get: () => undefined }); + expect(() => { + if (operation === "visibility") { + manager.setVisible({ + hostWindow, + request: { tabId: "browser:a", visible: false }, + }); + } else if (operation === "destroyed") { + guest.close(); + } else { + manager.detach({ hostWindow, tabId: "browser:a" }); + } + }).not.toThrow(); + manager.destroyAll(); + }, + ); + it.each(["detach", "releaseWindow", "destroyAll", "destroyed"] as const)( "notifies once after removing a native target through %s", (operation) => {