import { assert, describe, it } from "@effect/vitest";import * as Cause from "effect/Cause"; import { DesktopLifecycleRelaunchError } from "./DesktopLifecycle.ts";import { DesktopApplicationMenuActionError } from "../window/DesktopApplicationMenu.ts"; describe("desktop detached action errors", () => { it("preserves the complete relaunch failure cause and reason", () => { const cause = Cause.combine( Cause.fail(new Error("shutdown failed")), Cause.die(new Error("relaunch defect")), ); const error = new DesktopLifecycleRelaunchError({ reason: "apply update", cause, }); assert.strictEqual(error.cause, cause); assert.equal(error.reason, "apply update"); assert.equal(error.message, 'Desktop relaunch failed for reason "apply update".'); }); it("preserves the complete menu action failure cause and action", () => { const cause = Cause.combine( Cause.fail(new Error("window unavailable")), Cause.die(new Error("dispatch defect")), ); const error = new DesktopApplicationMenuActionError({ action: "open-settings", cause, }); assert.strictEqual(error.cause, cause); assert.equal(error.action, "open-settings"); assert.equal(error.message, 'Desktop menu action "open-settings" failed.'); });});
import { assert, describe, it } from "@effect/vitest";
import * as Cause from "effect/Cause";
import { DesktopLifecycleRelaunchError } from "./DesktopLifecycle.ts";
import { DesktopApplicationMenuActionError } from "../window/DesktopApplicationMenu.ts";
describe("desktop detached action errors", () => {
it("preserves the complete relaunch failure cause and reason", () => {
const cause = Cause.combine(
Cause.fail(new Error("shutdown failed")),
Cause.die(new Error("relaunch defect")),
);
const error = new DesktopLifecycleRelaunchError({
reason: "apply update",
cause,
});
assert.strictEqual(error.cause, cause);
assert.equal(error.reason, "apply update");
assert.equal(error.message, 'Desktop relaunch failed for reason "apply update".');
});
it("preserves the complete menu action failure cause and action", () => {
const cause = Cause.combine(
Cause.fail(new Error("window unavailable")),
Cause.die(new Error("dispatch defect")),
);
const error = new DesktopApplicationMenuActionError({
action: "open-settings",
cause,
});
assert.strictEqual(error.cause, cause);
assert.equal(error.action, "open-settings");
assert.equal(error.message, 'Desktop menu action "open-settings" failed.');
});
});