Files
WRNexusJS/packages/auth/test/sql-schema.test.ts
T

23 lines
803 B
TypeScript

import { expect, test } from "bun:test";
import type { Db } from "@wrnexus/db";
import { SqlAuthStore } from "../src/stores/sql.ts";
test("auth store qualifies tables without changing parameter values", async () => {
let query = "";
let values: unknown[] = [];
const db = {
driver: { dialect: "postgres" },
one: async (sql: string, params: unknown[]) => {
query = sql;
values = params;
return undefined;
},
} as unknown as Db;
const store = new SqlAuthStore(db, { schema: "sso", tablePrefix: "" });
await store.findUserById("wrn_auth_users");
expect(query).toContain('FROM "sso"."users"');
expect(query).toContain("$1");
expect(values).toEqual(["wrn_auth_users"]);
expect(() => new SqlAuthStore(db, { schema: 'sso";DROP TABLE users' })).toThrow();
});