refactor(db): typed query helpers, shared test FormData helper

Replace raw db.execute tuple casts with queryRows/rowsFrom/execResult/
affectedRows helpers from lib/db, drop redundant mysql2 casts on typed
query builders, and centralize per-test fakeForm into test/fake-form.
Update db mocks in tests so helpers resolve against mocked execute.
This commit is contained in:
openhands
2026-09-17 21:02:57 +02:00
parent 2e25b39364
commit 8638e81444
116 changed files with 866 additions and 897 deletions
@@ -1,5 +1,5 @@
import { type SQL, sql } from "drizzle-orm";
import { db } from "@/lib/db";
import { queryRows } from "@/lib/db";
import { canAccess, PERMS, type PermissionSet } from "@/lib/permissions";
export type OverviewRow = {
@@ -27,8 +27,7 @@ export async function loadUserOverview(
rank: number,
): Promise<OverviewSection[]> {
const read = async (query: SQL): Promise<OverviewRow[]> => {
const [rows] = await db.execute(query);
return rows as unknown as OverviewRow[];
return queryRows<OverviewRow>(query);
};
const sources: {
key: string;