import { Late, Shared } from "silentium"; import { expect, test, vi } from "vitest"; import { Memo } from "../behaviors/Memo"; test("Memo.test", () => { const l = Late(1); const mem = Shared(Memo(l)); const g = vi.fn(); mem.then(g); let counter = 0; mem.then(() => { counter += 1; }); l.use(2); l.use(2); l.use(2); l.use(2); l.use(2); expect(g).toHaveBeenLastCalledWith(2); expect(counter).toBe(2); l.use(3); expect(g).toHaveBeenLastCalledWith(3); expect(counter).toBe(3); });