39 lines · 1.1 KB · TypeScript
RawDownload
import { assert, describe, it } from "@effect/vitest";import * as Effect from "effect/Effect";import * as Stream from "effect/Stream"; import { collectUint8StreamText } from "./collectUint8StreamText.ts"; const encoder = new TextEncoder(); describe("collectUint8StreamText", () => {  it.effect("collects Uint8Array chunks into decoded text", () =>    Effect.gen(function* () {      const result = yield* collectUint8StreamText({        stream: Stream.make(encoder.encode("hello "), encoder.encode("world")),      });       assert.deepStrictEqual(result, {        text: "hello world",        bytes: 11,        truncated: false,      });    }),  );   it.effect("truncates by bytes and appends an optional marker once", () =>    Effect.gen(function* () {      const result = yield* collectUint8StreamText({        stream: Stream.make(encoder.encode("abcdef"), encoder.encode("ghij")),        maxBytes: 5,        truncatedMarker: "[truncated]",      });       assert.deepStrictEqual(result, {        text: "abcde[truncated]",        bytes: 5,        truncated: true,      });    }),  );});