import { getTableConfig, integer } from "drizzle-orm/pg-core"; import { describe, expect, it } from "vitest"; import { createModuleTable, moduleDrizzleSchemaMetadata } from "../src/drizzle.js"; describe("Drizzle module tables", () => { it("creates namespaced PostgreSQL tables that become plain schema metadata", () => { const moduleTable = createModuleTable("care-team"); const members = moduleTable("members", { id: integer().primaryKey() }); expect(getTableConfig(members).name).toBe("care_team_members"); expect(moduleDrizzleSchemaMetadata("care-team", { members })).toEqual({ moduleId: "care-team", tables: [{ foreignKeys: [], name: "care_team_members" }], }); }); it("rejects invalid module and logical table names", () => { expect(() => createModuleTable("Not Valid")).toThrow(); const moduleTable = createModuleTable("example"); expect(() => moduleTable("Not Valid", { id: integer() })).toThrow(); }); });