mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-09-03 01:07:07 +00:00
29 lines
971 B
TypeScript
29 lines
971 B
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
import { withOwnedRemoteResource } from "./ownedRemoteResource";
|
|
|
|
describe("flow-owned remote resources", () => {
|
|
it("disposes a resource after a successful finite operation", async () => {
|
|
const dispose = vi.fn(async () => undefined);
|
|
const resource = { dispose };
|
|
|
|
await expect(
|
|
withOwnedRemoteResource(resource, async (owned) => (owned === resource ? "done" : "wrong"))
|
|
).resolves.toBe("done");
|
|
|
|
expect(dispose).toHaveBeenCalledOnce();
|
|
});
|
|
|
|
it("disposes a resource when the finite operation rejects", async () => {
|
|
const dispose = vi.fn(async () => undefined);
|
|
const error = new Error("resource operation failed");
|
|
|
|
await expect(
|
|
withOwnedRemoteResource({ dispose }, async () => {
|
|
throw error;
|
|
})
|
|
).rejects.toBe(error);
|
|
|
|
expect(dispose).toHaveBeenCalledOnce();
|
|
});
|
|
});
|