From 8b54bfb46b0a282cf83c5b446710048c8a2d0f97 Mon Sep 17 00:00:00 2001 From: David Bottiau Date: Fri, 7 Jun 2024 12:23:22 +0200 Subject: [PATCH] Add missing table cbor decoding (#271) --- src/library/cbor/index.ts | 2 ++ tests/integration/tests/querying.ts | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/library/cbor/index.ts b/src/library/cbor/index.ts index 83a7ab2..9792680 100644 --- a/src/library/cbor/index.ts +++ b/src/library/cbor/index.ts @@ -121,6 +121,8 @@ export function decodeCbor(data: ArrayBuffer) { return new Duration(v.value); case TAG_CUSTOM_DURATION: return cborCustomDurationToDuration(v.value); + case TAG_TABLE: + return new Table(v.value); case TAG_RECORDID: return new RecordId(v.value[0], v.value[1]); case TAG_GEOMETRY_POINT: diff --git a/tests/integration/tests/querying.ts b/tests/integration/tests/querying.ts index 7db396e..183f375 100644 --- a/tests/integration/tests/querying.ts +++ b/tests/integration/tests/querying.ts @@ -10,6 +10,7 @@ import { GeometryPolygon, RecordId, StringRecordId, + Table, UUID, uuidv4, uuidv7, @@ -381,3 +382,18 @@ Deno.test("string record id", async () => { await surreal.close(); }); + +Deno.test("table", async () => { + const surreal = await createSurreal(); + + const [output] = await surreal.query<[Table]>( + /* surql */ `RETURN type::table($table)`, + { + table: "person", + } + ); + + assertEquals(output.tb, "person"); + + await surreal.close(); +});