Files
Epicnabbo-Catalogus-Updated…/src/db/catalog-packages.test.ts
T

41 lines
1.2 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { CatalogPackages } from "./catalog-packages";
const columns = CatalogPackages[Symbol.for("drizzle:Columns")] as Record<
string,
{ name: string; notNull: boolean; primary: boolean; dataType: string }
>;
describe("CatalogPackages table schema", () => {
it("maps to the website_catalog_packages table", () => {
expect(CatalogPackages[Symbol.for("drizzle:Name")]).toBe(
"website_catalog_packages",
);
});
it("defines a uuid primary key", () => {
expect(columns.id).toMatchObject({
name: "id",
primary: true,
notNull: true,
});
});
it("defines the package metadata columns as NOT NULL", () => {
for (const key of ["name", "version", "status", "mode", "payload"]) {
expect(columns[key]?.notNull).toBe(true);
expect(columns[key]?.name).toBe(key);
}
});
it("keeps the version column numeric and payload longtext", () => {
expect(columns.version.dataType).toBe("number");
expect(columns.payload.dataType).toBe("string");
});
it("tracks an updated_at timestamp and exposes $inferSelect/$inferInsert types", () => {
expect(columns.updatedAt.name).toBe("updated_at");
expect(columns.updatedAt.notNull).toBe(true);
});
});