import { getTableConfig, integer } from "drizzle-orm/pg-core"; import { describe, expect, it } from "vitest"; import { createModuleTable, defineModuleSchema } from "../src/index.js"; describe("module schema authoring", () => { it("creates namespaced PostgreSQL tables and a typed frozen definition", () => { const moduleTable = createModuleTable("care-team"); const members = moduleTable("members", { id: integer().primaryKey() }); const definition = defineModuleSchema({ moduleId: "care-team", tables: { members }, }); expect(getTableConfig(members).name).toBe("care_team_members"); expect(definition.tables.members).toBe(members); expect(Object.isFrozen(definition)).toBe(true); expect(Object.isFrozen(definition.tables)).toBe(true); }); it("rejects invalid module and logical table names", () => { expect(() => createModuleTable("Not Valid")).toThrow(); const moduleTable = createModuleTable("example"); expect(() => moduleTable("Not Valid", { id: integer() })).toThrow(); }); });