mirror of
https://github.com/denoland/std.git
synced 2024-11-22 04:59:05 +00:00
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
|
import { assertEquals } from "@std/assert";
|
|
import { StringWriter } from "./string_writer.ts";
|
|
import { StringReader } from "./string_reader.ts";
|
|
import { copyN } from "./copy_n.ts";
|
|
import { copy } from "./copy.ts";
|
|
|
|
Deno.test("ioStringWriter", async function () {
|
|
const w = new StringWriter("base");
|
|
const r = new StringReader("0123456789");
|
|
await copyN(r, w, 4);
|
|
assertEquals(w.toString(), "base0123");
|
|
await copy(r, w);
|
|
assertEquals(w.toString(), "base0123456789");
|
|
});
|
|
|
|
Deno.test("ioStringWriterSync", function () {
|
|
const encoder = new TextEncoder();
|
|
const w = new StringWriter("");
|
|
w.writeSync(encoder.encode("deno"));
|
|
assertEquals(w.toString(), "deno");
|
|
w.writeSync(encoder.encode("\nland"));
|
|
assertEquals(w.toString(), "deno\nland");
|
|
});
|
|
|
|
Deno.test("ioStringWriterIsolationTest", async function () {
|
|
const encoder = new TextEncoder();
|
|
const src = "ABC";
|
|
const srcChunks = src.split("").map((c) => encoder.encode(c));
|
|
|
|
const w = new StringWriter();
|
|
for (const c of srcChunks) {
|
|
const written = await w.write(c);
|
|
assertEquals(written, 1);
|
|
}
|
|
assertEquals(w.toString(), src);
|
|
});
|