summaryrefslogtreecommitdiff
path: root/tests/js/accretion.mjs
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-02-23 11:11:38 -0300
committerEuAndreh <eu@euandre.org>2024-02-23 11:21:21 -0300
commitcd50a23dab8623f232da7d6b1b9511f4590e9788 (patch)
tree349e111763eac7853d9f1dd7a61e9bce117f3993 /tests/js/accretion.mjs
parentBig cleanup (diff)
downloadpapod-cd50a23dab8623f232da7d6b1b9511f4590e9788.tar.gz
papod-cd50a23dab8623f232da7d6b1b9511f4590e9788.tar.xz
Implement accretion.runMigrations() and wrappings of node-sqlite3
Diffstat (limited to 'tests/js/accretion.mjs')
-rw-r--r--tests/js/accretion.mjs35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/js/accretion.mjs b/tests/js/accretion.mjs
new file mode 100644
index 0000000..3ea90c3
--- /dev/null
+++ b/tests/js/accretion.mjs
@@ -0,0 +1,35 @@
+import assert from "node:assert/strict";
+
+import sqlite from "../../src/sqlite.cjs";
+
+import { runTests } from "../runner.mjs";
+import { promisifyDb, open } from "../../src/db.mjs";
+import { runMigrations } from "../../src/accretion.mjs";
+
+
+const test_runMigrations = t => {
+ t.start("runMigrations()");
+
+ t.test("running twice is a noop", async () => {
+ const db = await open(":memory:");
+ const migrationsFn = () => db.all("SELECT filename FROM migrations;");
+
+ assert.rejects(
+ migrationsFn,
+ { message: "SQLITE_ERROR: no such table: migrations" },
+ );
+
+ await runMigrations(db);
+ const filled = await migrationsFn();
+
+ await runMigrations(db);
+ const unchanged = await migrationsFn();
+
+ assert.deepEqual(filled, unchanged);
+ });
+};
+
+
+await runTests([
+ test_runMigrations,
+]);