22 lines
817 B
TypeScript
22 lines
817 B
TypeScript
import "../../setup.ts";
|
|
import { assertEquals } from "@std/assert";
|
|
import { DatabaseSync } from "node:sqlite";
|
|
import { up as up0022 } from "../../../db/migrations/0022_reserve_community.ts";
|
|
|
|
Deno.test("migration 0022 renames a category named community", () => {
|
|
const db = new DatabaseSync(":memory:");
|
|
db.exec(`CREATE TABLE categories (id TEXT PRIMARY KEY, slug TEXT);`);
|
|
for (const slug of ["community", "community-2", "music"]) {
|
|
db.prepare(`INSERT INTO categories (id, slug) VALUES (?, ?);`).run(
|
|
crypto.randomUUID(),
|
|
slug,
|
|
);
|
|
}
|
|
up0022(db);
|
|
up0022(db); // idempotent
|
|
const slugs = (db.prepare(`SELECT slug FROM categories ORDER BY slug;`)
|
|
.all() as { slug: string }[]).map((r) => r.slug);
|
|
assertEquals(slugs, ["community-2", "community-3", "music"]);
|
|
db.close();
|
|
});
|