t3-code-android-nightly/.repos/effect-smol/packages/platform/bun/test/BunStream.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

27 lines
1,004 B
TypeScript

import * as BunStream from "@effect/platform-bun/BunStream"
import { assert, describe, it } from "@effect/vitest"
import * as Cause from "effect/Cause"
import * as Effect from "effect/Effect"
import * as Exit from "effect/Exit"
import * as Stream from "effect/Stream"
describe("BunStream", () => {
it.effect("preserves mapped failures from errored readable streams", () =>
Effect.gen(function*() {
const exit = yield* BunStream.fromReadableStream({
evaluate: () =>
new ReadableStream<number>({
start(controller) {
controller.error(new Error("boom"))
}
}),
onError: (error) => new Error(`mapped: ${(error as Error).message}`)
}).pipe(Stream.runDrain, Effect.exit)
assert.isTrue(Exit.isFailure(exit))
if (Exit.isFailure(exit)) {
assert.isTrue(exit.cause.reasons.every(Cause.isFailReason))
assert.deepStrictEqual(Cause.squash(exit.cause), new Error("mapped: boom"))
}
}))
})