summaryrefslogtreecommitdiff
path: root/tests/js/db.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/js/db.mjs')
-rw-r--r--tests/js/db.mjs110
1 files changed, 0 insertions, 110 deletions
diff --git a/tests/js/db.mjs b/tests/js/db.mjs
deleted file mode 100644
index 12b7405..0000000
--- a/tests/js/db.mjs
+++ /dev/null
@@ -1,110 +0,0 @@
-import assert from "node:assert/strict";
-
-import sqlite from "../../src/sqlite.cjs";
-
-import * as runner from "../runner.mjs";
-import {
- promisifyDb,
- open,
- handle,
- init,
-} from "../../src/db.mjs";
-
-
-const test_promisifyDb = async t => {
- t.start("promisifyDb()");
-
- const createTable = "CREATE TABLE table_ (column INTEGER NOT NULL PRIMARY KEY);";
-
- await t.test("we can access the underlying database and statement ref", async () => {
- const db = await open(":memory:");
- assert.ok(db.ref instanceof sqlite.Database);
-
- const stmt = await db.prepare("SELECT 1;");
- assert.ok(stmt.ref instanceof sqlite.Statement);
- });
-
- await t.test("we can run the wrapped fns", async () => {
- const db = await open(":memory:");
-
- await db.exec(createTable);
-
- const stmt = await db.prepare("INSERT INTO table_ (column) VALUES ($column)");
- await stmt.run({ $column: 3 });
- await stmt.run({ $column: 1 });
- await stmt.finalize();
- assert.rejects(
- async () => await stmt.run({ $column: 2 }),
- {
- message: "SQLITE_MISUSE: Statement is already finalized",
- code: "SQLITE_MISUSE",
- },
- );
-
- const selectAll = "SELECT column FROM table_ ORDER BY column;";
-
- const all = await db.all(selectAll);
- assert.deepEqual(all, [{ column: 1 }, { column: 3 }]);
-
- const contents = [];
- const cb = row => contents.push(row);
- await db.each(selectAll, cb);
- assert.deepEqual(contents, [{ column: 1 }, { column: 3 }]);
- });
-};
-
-const test_open = async t => {
- t.start("open()");
-
- await t.test("we must provide a name", () => {
- assert.rejects(
- async () => await open(),
- assert.AssertionError,
- );
-
- assert.rejects(
- async () => await open(undefined),
- assert.AssertionError,
- );
-
- assert.rejects(
- async () => await open(null),
- assert.AssertionError,
- );
-
- assert.rejects(
- async () => await open(""),
- assert.AssertionError,
- );
- });
-
- await t.test("failure to open causes a promise rejection", () => {
- assert.rejects(
- async () => await open("tests/non/existing/directory/and/file"),
- {
- message: "SQLITE_CANTOPEN: unable to open database file",
- code: "SQLITE_CANTOPEN",
- },
- );
- });
-};
-
-const test_init = async t => {
- t.start("init()");
- await t.test("we only know how to deal with 1 database", async () => {
- const logFn = () => {};
- await init(logFn);
- const ref1 = handle;
- await init(logFn);
- const ref2 = handle;
-
- assert.notDeepEqual(ref1, ref2);
- });
-};
-
-
-await runner.runTests([
- test_promisifyDb,
- test_open,
- test_init,
-]);