diff --git a/packages/effect/test/Mailbox.test.ts b/packages/effect/test/Mailbox.test.ts index 5fc9606bf5..4be31dc170 100644 --- a/packages/effect/test/Mailbox.test.ts +++ b/packages/effect/test/Mailbox.test.ts @@ -1,4 +1,4 @@ -import { Effect, Exit, Fiber, Mailbox } from "effect" +import { Chunk, Effect, Exit, Fiber, Mailbox, Stream } from "effect" import { assert, describe, it } from "effect/test/utils/extend" describe("Mailbox", () => { @@ -70,4 +70,15 @@ describe("Mailbox", () => { yield* mailbox.done(Exit.void) assert.deepStrictEqual(yield* fiber.await, Exit.succeed([[] as Array, true] as const)) })) + + it.effect("offer ordering", () => + Effect.gen(function*() { + const mailbox = yield* Mailbox.make(2) + yield* Effect.fork(mailbox.offerAll([1, 2, 3, 4])) + yield* Effect.fork(mailbox.offerAll([5, 6, 7, 8])) + yield* Effect.fork(mailbox.offer(9)) + yield* Effect.fork(mailbox.end) + const items = yield* Stream.runCollect(Mailbox.toStream(mailbox)) + assert.deepStrictEqual(Chunk.toReadonlyArray(items), [1, 2, 3, 4, 5, 6, 7, 8, 9]) + })) })