t3-code-android-nightly/.repos/effect-smol/packages/effect/test/SynchronizedRef.modifySomeEffect.test.ts
Julius Marminge e3c85ead63
chore(refs): sync Effect and Alchemy references to rc.115 and beta.78 (#12327)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-17 23:21:25 -07:00

26 lines
986 B
TypeScript

import { assert, describe, it } from "@effect/vitest"
import { Effect, Option, SynchronizedRef } from "effect"
describe("SynchronizedRef.modifySomeEffect", () => {
it.effect("supports callback-only currying", () =>
Effect.gen(function*() {
const ref = yield* SynchronizedRef.make(1)
const result = yield* SynchronizedRef.modifySomeEffect((value: number) =>
Effect.succeed(["updated", Option.some(value + 1)] as const)
)(ref)
assert.strictEqual(result, "updated")
assert.strictEqual(yield* SynchronizedRef.get(ref), 2)
}))
it.effect("preserves the value for Option.none", () =>
Effect.gen(function*() {
const ref = yield* SynchronizedRef.make(1)
const result = yield* SynchronizedRef.modifySomeEffect((_: number) =>
Effect.succeed(["unchanged", Option.none<number>()] as const)
)(ref)
assert.strictEqual(result, "unchanged")
assert.strictEqual(yield* SynchronizedRef.get(ref), 1)
}))
})