mirror of
https://github.com/denoland/std.git
synced 2024-11-22 04:59:05 +00:00
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
|
import { assertEquals, assertRejects } from "@std/assert";
|
|
import type { ConcatenatedJsonParseStream } from "./concatenated_json_parse_stream.ts";
|
|
import type { JsonParseStream } from "./json_parse_stream.ts";
|
|
import type { ParseStreamOptions } from "./common.ts";
|
|
|
|
export async function assertValidParse(
|
|
transform: typeof ConcatenatedJsonParseStream | typeof JsonParseStream,
|
|
chunks: string[],
|
|
expect: unknown[],
|
|
options?: ParseStreamOptions,
|
|
) {
|
|
const r = ReadableStream.from(chunks)
|
|
.pipeThrough(new transform(options));
|
|
const res = await Array.fromAsync(r);
|
|
assertEquals(res, expect);
|
|
}
|
|
|
|
export async function assertInvalidParse(
|
|
transform: typeof ConcatenatedJsonParseStream | typeof JsonParseStream,
|
|
chunks: string[],
|
|
options: ParseStreamOptions,
|
|
// deno-lint-ignore no-explicit-any
|
|
ErrorClass: new (...args: any[]) => Error,
|
|
msgIncludes: string | undefined,
|
|
) {
|
|
const r = ReadableStream.from(chunks)
|
|
.pipeThrough(new transform(options));
|
|
await assertRejects(
|
|
async () => await Array.fromAsync(r),
|
|
ErrorClass,
|
|
msgIncludes,
|
|
);
|
|
}
|