t3-code-android-nightly/.repos/effect-smol/packages/effect/test/AtomRef.test.ts
Julius Marminge 6f9cea00ae
chore(refs): sync Effect and Alchemy references to 4.0.1 and beta.80 (#16170)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 13:22:30 -07:00

27 lines
637 B
TypeScript

import { assert, describe, it } from "@effect/vitest"
import { AtomRef } from "effect/reactivity"
describe("AtomRef", () => {
it("notifies each subscribed listener once when a listener resubscribes itself", () => {
const ref = AtomRef.make(0)
const calls = { A: 0, B: 0, C: 0 }
let unsubscribeA = () => {}
function A() {
calls.A++
unsubscribeA()
unsubscribeA = ref.subscribe(A)
}
unsubscribeA = ref.subscribe(A)
ref.subscribe(() => {
calls.B++
})
ref.subscribe(() => {
calls.C++
})
ref.set(1)
assert.deepStrictEqual(calls, { A: 1, B: 1, C: 1 })
})
})