@clickup/ent-framework
Version:
A PostgreSQL graph-database-alike library with microsharding and row-level security
28 lines (25 loc) • 1.12 kB
text/typescript
import { parseCompositeRow } from "../parseCompositeRow";
test("parseCompositeRow", async () => {
expect(parseCompositeRow("()")).toEqual([null]);
expect(parseCompositeRow("(,)")).toEqual([null, null]);
expect(parseCompositeRow('("1","2")')).toEqual(["1", "2"]);
expect(parseCompositeRow('(,"aaa")')).toEqual([null, "aaa"]);
expect(parseCompositeRow('("1","2","(""d""""d"",""5"")")')).toEqual([
"1",
"2",
'("d""d","5")',
]);
expect(parseCompositeRow('("1","2","{""x"",""y""}")')).toEqual([
"1",
"2",
'{"x","y"}',
]);
expect(parseCompositeRow('("aaa",)')).toEqual(["aaa", null]);
expect(parseCompositeRow(String.raw`("a\\b")`)).toEqual([String.raw`a\b`]);
expect(parseCompositeRow("(aa)")).toEqual(["aa"]);
expect(parseCompositeRow('("aaaaa aa","2")')).toEqual(["aaaaa aa", "2"]);
expect(parseCompositeRow("(12345,678)")).toEqual(["12345", "678"]);
await expect(async () => parseCompositeRow("(")).rejects.toThrow();
await expect(async () => parseCompositeRow('("aa)')).rejects.toThrow();
await expect(async () => parseCompositeRow("(aa")).rejects.toThrow();
});