diff --git a/packages/better-auth/src/auth/minimal.test.ts b/packages/better-auth/src/auth/minimal.test.ts index a8fb6339ee..427c01af56 100644 --- a/packages/better-auth/src/auth/minimal.test.ts +++ b/packages/better-auth/src/auth/minimal.test.ts @@ -1,5 +1,5 @@ import { memoryAdapter } from "@better-auth/memory-adapter"; -import Database from "better-sqlite3"; +import { DatabaseSync } from "node:sqlite"; import { describe, expect, expectTypeOf, it } from "vitest"; import type { Auth } from "../types"; import { betterAuth } from "./minimal"; @@ -55,7 +55,7 @@ describe("auth-minimal", () => { }); it("should throw error with direct database connection (Kysely required)", async () => { - const sqliteDB = new Database(":memory:"); + const sqliteDB = new DatabaseSync(":memory:"); const auth = betterAuth({ baseURL: "http://localhost:3000", diff --git a/packages/better-auth/src/context/create-context.test.ts b/packages/better-auth/src/context/create-context.test.ts index a926f1894f..fd285d03fd 100644 --- a/packages/better-auth/src/context/create-context.test.ts +++ b/packages/better-auth/src/context/create-context.test.ts @@ -1,4 +1,4 @@ -import Database from "better-sqlite3"; +import { DatabaseSync } from "node:sqlite"; import { describe, expect, it, vi } from "vitest"; import { createAuthEndpoint } from "../api"; import { getAdapter } from "../db/adapter-kysely"; @@ -286,7 +286,7 @@ describe("base context creation", () => { it("should return false for cookieRefreshCache when undefined", async () => { const res = await initBase({ - database: new Database(":memory:"), + database: new DatabaseSync(":memory:"), }); expect(res.sessionConfig.cookieRefreshCache).toBe(false); }); @@ -329,7 +329,7 @@ describe("base context creation", () => { level: "warn", log, } as any, - database: new Database(":memory:"), + database: new DatabaseSync(":memory:"), session: { cookieCache: { refreshCache: true, @@ -1298,7 +1298,7 @@ describe("base context creation", () => { level: "warn", log, } as any, - database: new Database(":memory:"), + database: new DatabaseSync(":memory:"), session: { cookieCache: { refreshCache: true, diff --git a/packages/better-auth/src/context/init.test.ts b/packages/better-auth/src/context/init.test.ts index 0fd8ef3c66..4ec2563f51 100644 --- a/packages/better-auth/src/context/init.test.ts +++ b/packages/better-auth/src/context/init.test.ts @@ -1,9 +1,9 @@ -import Database from "better-sqlite3"; +import { DatabaseSync } from "node:sqlite"; import { describe, expect, it } from "vitest"; import { init } from "./init"; describe("init (with Kysely)", () => { - const database = new Database(":memory:"); + const database = new DatabaseSync(":memory:"); it("should initialize with Kysely adapter", async () => { const res = await init({ diff --git a/packages/better-auth/src/db/internal-adapter.test.ts b/packages/better-auth/src/db/internal-adapter.test.ts index e3d8687654..084e2512dc 100644 --- a/packages/better-auth/src/db/internal-adapter.test.ts +++ b/packages/better-auth/src/db/internal-adapter.test.ts @@ -1,7 +1,5 @@ import type { GenericEndpointContext } from "@better-auth/core"; import { safeJSONParse } from "@better-auth/core/utils/json"; -import Database from "better-sqlite3"; -import { Kysely, SqliteDialect } from "kysely"; import { afterEach, beforeAll, describe, expect, it, vi } from "vitest"; import { betterAuth } from "../auth/full"; import { init } from "../context/init"; @@ -13,11 +11,9 @@ import type { User, } from "../types"; import { getMigrations } from "./get-migration"; +import { DatabaseSync } from 'node:sqlite' describe("internal adapter test", async () => { - const sqliteDialect = new SqliteDialect({ - database: new Database(":memory:"), - }); const map = new Map(); const expirationMap = new Map(); let id = 1; @@ -30,10 +26,7 @@ describe("internal adapter test", async () => { const pluginHookUserCreateBefore = vi.fn(); const pluginHookUserCreateAfter = vi.fn(); const opts = { - database: { - dialect: sqliteDialect, - type: "sqlite", - }, + database: new DatabaseSync(":memory:"), user: { fields: { email: "email_address", @@ -270,30 +263,19 @@ describe("internal adapter test", async () => { }; const hookUserCreateAfter = vi.fn(); - const dialect = new SqliteDialect({ - database: new Database(":memory:"), - }); + const database = new DatabaseSync(":memory:") - const db = new Kysely({ - dialect, - }); - - const opts: BetterAuthOptions = { - database: { - dialect, - type: "sqlite", - }, + const opts = { + database, databaseHooks: { user: { create: { async after(user, context) { hookUserCreateAfter(user, context); - const userFromDb: any = await db - .selectFrom("user") - .selectAll() - .where("id", "=", user.id) - .executeTakeFirst(); + const userFromDb = database + .prepare('SELECT * FROM user WHERE id = ?') + .get(user.id)!; expect(user.id).toBe(userFromDb.id); expect(user.name).toBe(userFromDb.name); @@ -303,10 +285,10 @@ describe("internal adapter test", async () => { Boolean(userFromDb.emailVerified), ); expect(user.createdAt).toStrictEqual( - new Date(userFromDb.createdAt), + new Date(userFromDb.createdAt as string), ); expect(user.updatedAt).toStrictEqual( - new Date(userFromDb.updatedAt), + new Date(userFromDb.updatedAt as string), ); }, }, @@ -339,12 +321,7 @@ describe("internal adapter test", async () => { const capturedTTLs: number[] = []; const testOpts = { - database: { - dialect: new SqliteDialect({ - database: new Database(":memory:"), - }), - type: "sqlite", - }, + database: new DatabaseSync(":memory:"), secondaryStorage: { set(key: string, value: string, ttl?: number | undefined) { if (ttl !== undefined) { @@ -645,16 +622,8 @@ describe("internal adapter test", async () => { const testMap = new Map(); const testExpirationMap = new Map(); - const testDb = new Database(":memory:"); - const testSqliteDialect = new SqliteDialect({ - database: testDb, - }); - const testOpts = { - database: { - dialect: testSqliteDialect, - type: "sqlite", - }, + database: new DatabaseSync(":memory:"), secondaryStorage: { set(key: string, value: string, ttl?: number) { testMap.set(key, value); @@ -752,23 +721,14 @@ describe("internal adapter test", async () => { expect(updatedTTL).toBeDefined(); expect(updatedTTL! - expectedTTL).toBeLessThanOrEqual(1); expect(updatedTTL! - expectedTTL).toBeGreaterThanOrEqual(0); - - // Clean up DB - testDb.close(); }); it("should deduplicate sessions when active-sessions list contains duplicates", async () => { - const testDb = new Database(":memory:"); - const testDialect = new SqliteDialect({ database: testDb }); - const testMap = new Map(); const testExpirationMap = new Map(); const testOpts = { - database: { - dialect: testDialect, - type: "sqlite", - }, + database: new DatabaseSync(":memory:"), secondaryStorage: { set(key: string, value: string, ttl?: number) { testMap.set(key, value); @@ -823,8 +783,5 @@ describe("internal adapter test", async () => { // listSessions should deduplicate and return only unique sessions const sessions = await testInternalAdapter.listSessions(user.id); expect(sessions.length).toBe(1); - - // Clean up DB - testDb.close(); }); }); diff --git a/packages/better-auth/src/social.test.ts b/packages/better-auth/src/social.test.ts index 5be3f6cd40..463b8d540c 100644 --- a/packages/better-auth/src/social.test.ts +++ b/packages/better-auth/src/social.test.ts @@ -6,7 +6,7 @@ import type { VercelProfile, } from "@better-auth/core/social-providers"; import { betterFetch } from "@better-fetch/fetch"; -import Database from "better-sqlite3"; +import { DatabaseSync } from "node:sqlite"; import { HttpResponse, http } from "msw"; import { setupServer } from "msw/node"; import { OAuth2Server } from "oauth2-mock-server"; @@ -614,7 +614,7 @@ describe("Disable signup", async () => { }); describe("signin", async () => { - const database = new Database(":memory:"); + const database = new DatabaseSync(":memory:"); beforeAll(async () => { const migrations = await getMigrations({ diff --git a/packages/better-auth/src/test-utils/test-instance.ts b/packages/better-auth/src/test-utils/test-instance.ts index 7b6d66c908..76fdc2f816 100644 --- a/packages/better-auth/src/test-utils/test-instance.ts +++ b/packages/better-auth/src/test-utils/test-instance.ts @@ -61,8 +61,8 @@ export async function getTestInstance< } async function getSqlite() { - const { default: Database } = await import("better-sqlite3"); - return new Database(":memory:"); + const { DatabaseSync } = await import("node:sqlite"); + return new DatabaseSync(":memory:"); } async function getMysql() {