diff --git a/packages/better-auth/src/adapters/drizzle-adapter/test/__snapshots__/adapter.drizzle.test.ts.snap b/packages/better-auth/src/adapters/drizzle-adapter/test/__snapshots__/adapter.drizzle.test.ts.snap new file mode 100644 index 0000000000..483e4559ff --- /dev/null +++ b/packages/better-auth/src/adapters/drizzle-adapter/test/__snapshots__/adapter.drizzle.test.ts.snap @@ -0,0 +1,46 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`adapter test > should create schema > __snapshots__/adapter.drizzle 1`] = ` +"import { + pgTable, + text, + integer, + timestamp, + boolean, +} from "drizzle-orm/pg-core"; + +export const user = pgTable("user", { + id: text("id").primaryKey(), + name: text("name").notNull(), + email: text("email").notNull().unique(), + emailVerified: boolean("emailVerified").notNull(), + image: text("image"), + createdAt: timestamp("createdAt").notNull(), + updatedAt: timestamp("updatedAt").notNull(), +}); + +export const session = pgTable("session", { + id: text("id").primaryKey(), + expiresAt: timestamp("expiresAt").notNull(), + ipAddress: text("ipAddress"), + userAgent: text("userAgent"), + userId: text("userId") + .notNull() + .references(() => user.id), +}); + +export const account = pgTable("account", { + id: text("id").primaryKey(), + accountId: text("accountId").notNull(), + providerId: text("providerId").notNull(), + userId: text("userId") + .notNull() + .references(() => user.id), + accessToken: text("accessToken"), + refreshToken: text("refreshToken"), + idToken: text("idToken"), + expiresAt: timestamp("expiresAt"), + password: text("password"), +}); +" +`; diff --git a/packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.test.ts b/packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.test.ts index eb4d1eece8..92b8b2deaf 100644 --- a/packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.test.ts +++ b/packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.test.ts @@ -1,5 +1,5 @@ import fs from "fs/promises"; -import { afterAll, beforeAll, beforeEach, describe, it } from "vitest"; +import { afterAll, beforeAll, beforeEach, describe, expect, it } from "vitest"; import { user } from "./schema"; import { runAdapterTest } from "../../test"; @@ -38,6 +38,16 @@ describe("adapter test", async () => { provider: "pg", }); + it("should create schema", async () => { + const res = await adapter.createSchema!({ + database: { + provider: "sqlite", + url: ":memory:", + }, + }); + expect(res.code).toMatchSnapshot("__snapshots__/adapter.drizzle"); + }); + await runAdapterTest({ adapter, }); diff --git a/packages/better-auth/src/adapters/kysely-adapter/test/__snapshots__/adapter.kysley.test.ts.snap b/packages/better-auth/src/adapters/kysely-adapter/test/__snapshots__/adapter.kysley.test.ts.snap new file mode 100644 index 0000000000..ca0ed27bc0 --- /dev/null +++ b/packages/better-auth/src/adapters/kysely-adapter/test/__snapshots__/adapter.kysley.test.ts.snap @@ -0,0 +1,9 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`adapter test > should create schema > __snapshots__/adapter.drizzle 1`] = ` +"create table "user" ("id" text primary key, "name" text not null, "email" text not null unique, "emailVerified" boolean not null, "image" text, "createdAt" date not null, "updatedAt" date not null); + +create table "session" ("id" text primary key, "expiresAt" date not null, "ipAddress" text, "userAgent" text, "userId" text not null references "user" ("id")); + +create table "account" ("id" text primary key, "accountId" text not null, "providerId" text not null, "userId" text not null references "user" ("id"), "accessToken" text, "refreshToken" text, "idToken" text, "expiresAt" date, "password" text)" +`; diff --git a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysley.test.ts b/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysley.test.ts new file mode 100644 index 0000000000..ccebee9b81 --- /dev/null +++ b/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysley.test.ts @@ -0,0 +1,53 @@ +import fs from "fs/promises"; +import { afterAll, beforeEach, describe, expect, it } from "vitest"; +import { runAdapterTest } from "../../test"; +import { getMigrations } from "../../../cli/utils/get-migration"; +import path from "path"; +import { drizzle } from "drizzle-orm/better-sqlite3"; +import Database from "better-sqlite3"; +import { kyselyAdapter } from ".."; +import { Kysely, SqliteDialect } from "kysely"; + +describe("adapter test", async () => { + beforeEach(async () => { + const { runMigrations } = await getMigrations({ + database: { + provider: "sqlite", + url: path.join(__dirname, "test.db"), + }, + }); + await runMigrations(); + }); + + afterAll(async () => { + await fs.unlink(path.join(__dirname, "test.db")); + }); + const sqlite = new Database(path.join(__dirname, "test.db")); + const db = new Kysely({ + dialect: new SqliteDialect({ + database: sqlite, + }), + }); + + const adapter = kyselyAdapter(db, { + transform: { + schema: {}, + boolean: true, + date: true, + }, + }); + + it("should create schema", async () => { + const res = await adapter.createSchema!({ + database: { + provider: "sqlite", + url: ":memory:", + }, + }); + expect(res.code).toMatchSnapshot("__snapshots__/adapter.drizzle"); + }); + + await runAdapterTest({ + adapter, + }); +}); diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/__snapshots__/adapter.prisma.test.ts.snap b/packages/better-auth/src/adapters/prisma-adapter/test/__snapshots__/adapter.prisma.test.ts.snap index ac34b7e4af..a232d9956a 100644 --- a/packages/better-auth/src/adapters/prisma-adapter/test/__snapshots__/adapter.prisma.test.ts.snap +++ b/packages/better-auth/src/adapters/prisma-adapter/test/__snapshots__/adapter.prisma.test.ts.snap @@ -1,6 +1,6 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`adapter test > should match > __snapshots__/adapter.prisma 1`] = ` +exports[`adapter test > should create schema > __snapshots__/adapter.prisma 1`] = ` " generator client { provider = "prisma-client-js" diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/adapter.prisma.test.ts b/packages/better-auth/src/adapters/prisma-adapter/test/adapter.prisma.test.ts index c5d8ffb89d..ae4114ecd7 100644 --- a/packages/better-auth/src/adapters/prisma-adapter/test/adapter.prisma.test.ts +++ b/packages/better-auth/src/adapters/prisma-adapter/test/adapter.prisma.test.ts @@ -13,7 +13,7 @@ describe("adapter test", async () => { provider: "sqlite", }); - it("should match", async () => { + it("should create schema", async () => { const res = await adapter.createSchema!({ database: { provider: "sqlite",