90 lines
1.6 KiB
TypeScript
90 lines
1.6 KiB
TypeScript
import tap from "tap";
|
|
import JSONParser from "../src/jsonparser";
|
|
import { charset } from "../src/utils/utf-8";
|
|
|
|
const { test } = tap;
|
|
|
|
const { QUOTATION_MARK } = charset;
|
|
|
|
const quote = String.fromCharCode(QUOTATION_MARK);
|
|
|
|
test("write accept strings", (t) => {
|
|
t.plan(1);
|
|
const value = "test";
|
|
|
|
const p = new JSONParser();
|
|
p.onValue = (v) => t.equal(v, value);
|
|
|
|
p.write(quote);
|
|
p.write(value);
|
|
p.write(quote);
|
|
});
|
|
|
|
test("write accept Uint8Array", (t) => {
|
|
t.plan(1);
|
|
const value = "test";
|
|
|
|
const p = new JSONParser();
|
|
p.onValue = (v) => t.equal(v, value);
|
|
|
|
p.write(quote);
|
|
p.write(new Uint8Array([116, 101, 115, 116]));
|
|
p.write(quote);
|
|
});
|
|
|
|
test("write accept Uint16Array", (t) => {
|
|
t.plan(1);
|
|
|
|
const value = "test";
|
|
|
|
const p = new JSONParser();
|
|
p.onValue = (v) => t.equal(v, value);
|
|
|
|
p.write(quote);
|
|
p.write(new Uint16Array([116, 101, 115, 116]));
|
|
p.write(quote);
|
|
});
|
|
|
|
test("write accept Uint32Array", (t) => {
|
|
t.plan(1);
|
|
|
|
const value = "test";
|
|
|
|
const p = new JSONParser();
|
|
p.onValue = (v) => t.equal(v, value);
|
|
|
|
p.write(quote);
|
|
p.write(new Uint32Array([116, 101, 115, 116]));
|
|
p.write(quote);
|
|
});
|
|
|
|
test("write accept Array", (t) => {
|
|
t.plan(1);
|
|
|
|
const value = "test";
|
|
|
|
const p = new JSONParser();
|
|
p.onValue = (v) => t.equal(v, value);
|
|
|
|
p.write(quote);
|
|
p.write([116, 101, 115, 116]);
|
|
p.write(quote);
|
|
});
|
|
|
|
test("write throw on invalid type", (t) => {
|
|
t.plan(1);
|
|
|
|
const p = new JSONParser();
|
|
p.onValue = () => {
|
|
/* Do nothing */
|
|
};
|
|
|
|
try {
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
p.write(745674 as any);
|
|
t.fail("Expected to fail");
|
|
} catch (e) {
|
|
t.pass();
|
|
}
|
|
});
|