std/streams/writer_from_stream_writer_test.ts

27 lines
838 B
TypeScript

// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
import { assertEquals } from "../assert/mod.ts";
import { writerFromStreamWriter } from "./writer_from_stream_writer.ts";
Deno.test("[streams] writerFromStreamWriter()", async function () {
const written: string[] = [];
const chunks: string[] = ["hello", "deno", "land"];
const writableStream = new WritableStream({
write(chunk) {
const decoder = new TextDecoder();
written.push(decoder.decode(chunk));
},
});
const encoder = new TextEncoder();
const writer = writerFromStreamWriter(writableStream.getWriter());
for (const chunk of chunks) {
const n = await writer.write(encoder.encode(chunk));
// stream writers always write all the bytes
assertEquals(n, chunk.length);
}
assertEquals(written, chunks);
});