From f9f2535246ded1b87d0db3098467c9f9a8480b95 Mon Sep 17 00:00:00 2001 From: Anton Harniakou Date: Thu, 29 May 2025 14:36:00 +0300 Subject: [PATCH] better-sqlite: test pragma --- .../__test__/better-sqlite3.spec.mjs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/bindings/javascript/__test__/better-sqlite3.spec.mjs b/bindings/javascript/__test__/better-sqlite3.spec.mjs index 2004d28bb..c481126f4 100644 --- a/bindings/javascript/__test__/better-sqlite3.spec.mjs +++ b/bindings/javascript/__test__/better-sqlite3.spec.mjs @@ -84,6 +84,35 @@ test("Test pragma()", async (t) => { t.deepEqual(typeof db.pragma("cache_size", { simple: true }), "number"); }); +test("pragma query", async (t) => { + const [db] = await connect(":memory:"); + let page_size = db.pragma("page_size"); + let expectedValue = [{page_size: 4096}]; + t.deepEqual(page_size, expectedValue); +}); + +test("pragma table_list", async (t) => { + const [db] = await connect(":memory:"); + let param = "sqlite_schema"; + let actual = db.pragma(`table_info(${param})`); + let expectedValue = [ + {cid: 0, name: "type", type: "TEXT", notnull: 0, dflt_value: null, pk: 0}, + {cid: 1, name: "name", type: "TEXT", notnull: 0, dflt_value: null, pk: 0}, + {cid: 2, name: "tbl_name", type: "TEXT", notnull: 0, dflt_value: null, pk: 0}, + {cid: 3, name: "rootpage", type: "INT", notnull: 0, dflt_value: null, pk: 0}, + {cid: 4, name: "sql", type: "TEXT", notnull: 0, dflt_value: null, pk: 0}, + ]; + t.deepEqual(actual, expectedValue); +}); + +test("simple pragma table_list", async (t) => { + const [db] = await connect(":memory:"); + let param = "sqlite_schema"; + let actual = db.pragma(`table_info(${param})`, {simple: true}); + let expectedValue = 0; + t.deepEqual(actual, expectedValue); +}); + test("Statement shouldn't bind twice with bind()", async (t) => { const [db] = await connect(":memory:"); db.prepare("CREATE TABLE users (name TEXT, age INTEGER)").run();