1import { assert, describe, it } from "@effect/vitest"
2import { ChunkedMessage } from "effect/eventlog/EventLogMessage"
3
4describe("EventLogMessage", () => {
5 it("splits empty data into one chunk", () => {
6 assert.deepStrictEqual(
7 ChunkedMessage.split(1, new Uint8Array()),
8 [new ChunkedMessage({ id: 1, part: [0, 1], data: new Uint8Array() })]
9 )
10 })
11
12 it("ignores duplicate chunks when joining", () => {
13 const state = ChunkedMessage.initialJoinState()
14 const chunk = new ChunkedMessage({
15 id: 1,
16 part: [0, 2],
17 data: new Uint8Array([1])
18 })
19
20 assert.isUndefined(ChunkedMessage.join(state, chunk))
21 assert.isUndefined(ChunkedMessage.join(state, chunk))
22 assert.deepStrictEqual(
23 ChunkedMessage.join(
24 state,
25 new ChunkedMessage({
26 id: 1,
27 part: [1, 2],
28 data: new Uint8Array([2])
29 })
30 ),
31 new Uint8Array([1, 2])
32 )
33 })
34})