Add digital catalog with shareable flipbook and ktg.montzar.ir deploy files.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import fs from "node:fs/promises";
|
||||
import os from "node:os";
|
||||
import path from "node:path";
|
||||
import { afterEach, describe, expect, it } from "vitest";
|
||||
import { openDatabase } from "../../server/db";
|
||||
import { createCatalogRepo } from "../../server/catalog-repo";
|
||||
|
||||
const temps: string[] = [];
|
||||
|
||||
async function tempDb() {
|
||||
const dir = await fs.mkdtemp(path.join(os.tmpdir(), "dc-db-"));
|
||||
temps.push(dir);
|
||||
const db = await openDatabase(path.join(dir, "catalogs.sqlite"));
|
||||
return createCatalogRepo(db);
|
||||
}
|
||||
|
||||
afterEach(async () => {
|
||||
await Promise.all(temps.splice(0).map((dir) => fs.rm(dir, { recursive: true, force: true })));
|
||||
});
|
||||
|
||||
describe("catalog repo", () => {
|
||||
it("inserts and reads a catalog", async () => {
|
||||
const repo = await tempDb();
|
||||
const created = repo.create({
|
||||
id: "abc12xyz90",
|
||||
deleteToken: "token-token-token-token-12",
|
||||
title: "کاتالوگ",
|
||||
effect: "magazine",
|
||||
pageCount: 2,
|
||||
});
|
||||
const found = repo.getById("abc12xyz90");
|
||||
expect(found).toEqual(created);
|
||||
expect(found?.flipMs).toBe(1000);
|
||||
expect(found?.deleteToken).toBe("token-token-token-token-12");
|
||||
});
|
||||
|
||||
it("returns null after delete", async () => {
|
||||
const repo = await tempDb();
|
||||
repo.create({
|
||||
id: "id1",
|
||||
deleteToken: "tok",
|
||||
title: "کاتالوگ",
|
||||
effect: "slide",
|
||||
pageCount: 1,
|
||||
});
|
||||
expect(repo.deleteById("id1")).toBe(true);
|
||||
expect(repo.getById("id1")).toBeNull();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user