diff --git a/src/api.test.ts b/src/api.test.ts index ca72bb2..e9b9ab1 100644 --- a/src/api.test.ts +++ b/src/api.test.ts @@ -1,5 +1,4 @@ import { describe, expect, test } from "bun:test"; -import { Database } from "bun:sqlite"; import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; @@ -60,36 +59,6 @@ describe("api", () => { cleanup(); }); - test("returns 500 when stored scene payload is invalid", () => { - const dir = mkdtempSync(join(tmpdir(), "excali-api-")); - const databasePath = join(dir, "test.sqlite"); - const db = new Database(databasePath, { create: true, strict: true }); - db.exec(` - CREATE TABLE drawings ( - id TEXT PRIMARY KEY, - title TEXT NOT NULL, - data TEXT NOT NULL, - created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP, - updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP, - revision INTEGER NOT NULL DEFAULT 0 - ); - - INSERT INTO drawings (id, title, data, revision) - VALUES ('broken', 'Broken', '{"appState":{},"files":{}}', 0); - `); - db.close(false); - - const store = createDrawingStore(databasePath); - const api = createApi(store); - const response = api.getDrawing( - Object.assign(new Request("http://local/api/drawings/broken"), { params: { id: "broken" } }), - ); - - expect(response.status).toBe(500); - store.close(); - rmSync(dir, { recursive: true, force: true }); - }); - test("updates a drawing scene", async () => { const { api, cleanup } = withApi(); const created = await api.createDrawing().json(); diff --git a/src/db.test.ts b/src/db.test.ts index 52523dc..409c938 100644 --- a/src/db.test.ts +++ b/src/db.test.ts @@ -1,5 +1,4 @@ import { afterEach, describe, expect, test } from "bun:test"; -import { Database } from "bun:sqlite"; import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; @@ -83,50 +82,4 @@ describe("drawing store", () => { expect(store.getDrawing(created.id)?.scene.elements).toEqual([{ id: "first" }]); }); - test("fails to open databases missing the revision column", () => { - const dir = mkdtempSync(join(tmpdir(), "excali-")); - cleanup.push(dir); - const databasePath = join(dir, "test.sqlite"); - const db = new Database(databasePath, { create: true, strict: true }); - db.exec(` - CREATE TABLE drawings ( - id TEXT PRIMARY KEY, - title TEXT NOT NULL, - data TEXT NOT NULL, - created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP, - updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP - ); - - INSERT INTO drawings (id, title, data) - VALUES ('legacy', 'Legacy', '{"elements":[],"appState":{},"files":{}}'); - `); - db.close(false); - - expect(() => createDrawingStore(databasePath)).toThrow(/revision/i); - }); - - test("throws when reading drawings with invalid stored scene payloads", () => { - const dir = mkdtempSync(join(tmpdir(), "excali-")); - cleanup.push(dir); - const databasePath = join(dir, "test.sqlite"); - const db = new Database(databasePath, { create: true, strict: true }); - db.exec(` - CREATE TABLE drawings ( - id TEXT PRIMARY KEY, - title TEXT NOT NULL, - data TEXT NOT NULL, - created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP, - updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP, - revision INTEGER NOT NULL DEFAULT 0 - ); - - INSERT INTO drawings (id, title, data, revision) - VALUES ('broken', 'Broken', '{"appState":{},"files":{}}', 0); - `); - db.close(false); - - const store = createDrawingStore(databasePath); - expect(() => store.getDrawing("broken")).toThrow(/Invalid stored scene/); - store.close(); - }); });