From d45dc713468ea3404ea5ca16a2cc9c0608aa9555 Mon Sep 17 00:00:00 2001 From: Arman Yaraee Date: Tue, 28 Jan 2025 11:29:44 +0000 Subject: [PATCH] 4356 Stream.orDie effectful failure tests Added tests for issue https://github.com/Effect-TS/effect/issues/4356 Effectful failures or not handled by the orDie TODO: Add stream error from asyncIterator generator as well since that won't be caught either --- .../effect/test/Stream/error-handling.test.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/packages/effect/test/Stream/error-handling.test.ts b/packages/effect/test/Stream/error-handling.test.ts index 03cda8b7653..f9aeb6fe89d 100644 --- a/packages/effect/test/Stream/error-handling.test.ts +++ b/packages/effect/test/Stream/error-handling.test.ts @@ -359,4 +359,29 @@ describe("Stream", () => { ) deepStrictEqual(Array.from(result), [1, 2]) })) + + it.effect("orDie with Stream.fail", () => + Effect.gen(function*($) { + const stream = pipe(Stream.succeed(1), Stream.concat(Stream.fail("boom"))) + const result = yield* $( + stream, + Stream.orDie, + Stream.runCollect, + Effect.catchAllDefect(() => Effect.succeed("EXPECTED" as const)) + ) + deepStrictEqual(result, "EXPECTED") + })) + + it.effect("orDie effectful failure", () => + Effect.gen(function*($) { + const stream = Stream.succeed(1) + const result = yield* $( + stream, + Stream.mapEffect(() => Effect.fail("UNEXPECTED" as const)), + Stream.orDie, + Stream.runCollect, + Effect.catchAllDefect(() => Effect.succeed("EXPECTED" as const)) + ) + deepStrictEqual(result, "EXPECTED") + })) })