fix: finish 2.9.0 plugin moves and get every check green

This commit is contained in:
LukeGus committed 2026-09-24 23:35:18 -05:00
1 parent 8c1e02af89
commit 6489b62ece
335 files changed
+29878 -17749

No files matched your search

+27 -10
View File
@@ -5,7 +5,9 @@ const require = createRequire(import.meta.url);
const { transform, collectKeyColumns } =
require("./generate-dialect-schema.cjs") as {
transform: (source: string, dialect: "postgres" | "mysql") => string;
collectKeyColumns: (source: string) => Set<string>;
collectKeyColumns: (source: string) => {
keyed: Map<string, Set<string>>;
};
};
const SOURCE = `import { sqliteTable, text, integer, real } from "drizzle-orm/sqlite-core";
@@ -36,21 +38,36 @@ export const folders = sqliteTable("folders", {
`;
describe("collectKeyColumns", () => {
it("finds columns that must be indexable", () => {
const keyed = collectKeyColumns(SOURCE);
it("finds columns that must be indexable, per table", () => {
const { keyed } = collectKeyColumns(SOURCE);
// primary key, unique, and both ends of the foreign key
expect(keyed.has("id")).toBe(true);
expect(keyed.has("sync_id")).toBe(true);
expect(keyed.has("user_id")).toBe(true);
expect(keyed.get("users")?.has("id")).toBe(true);
expect(keyed.get("folders")?.has("sync_id")).toBe(true);
expect(keyed.get("folders")?.has("user_id")).toBe(true);
});
it("leaves ordinary strings alone", () => {
const keyed = collectKeyColumns(SOURCE);
const { keyed } = collectKeyColumns(SOURCE);
expect(keyed.has("username")).toBe(false);
expect(keyed.has("name")).toBe(false);
expect(keyed.has("cert")).toBe(false);
expect(keyed.get("users")?.has("username")).toBe(false);
expect(keyed.get("folders")?.has("name")).toBe(false);
expect(keyed.get("folders")?.has("cert")).toBe(false);
});
it("does not key a column because another table indexes the same name", () => {
const { keyed } = collectKeyColumns(`
export const a = sqliteTable("a", {
label: text("label"),
}, (table) => [index("idx_a_label").on(table.label)]);
export const b = sqliteTable("b", {
label: text("label"),
});
`);
expect(keyed.get("a")?.has("label")).toBe(true);
expect(keyed.get("b")?.has("label")).toBe(false);
});
});