import { expect, test } from "bun:test";
import { signal } from "../src/index.ts";

test("signal skips equal writes and supports safe unsubscribe during notification", () => {
  const count = signal(0);
  const seen: number[] = [];
  let off = () => {};
  off = count.subscribe((value) => {
    seen.push(value);
    off();
  });
  count.set(0);
  count.update((value) => value + 1);
  count.set(2);
  expect(seen).toEqual([1]);
  expect(count.get()).toBe(2);
});
