mirror of
https://github.com/better-auth/better-auth.git
synced 2026-05-26 08:56:40 -05:00
test: adapter schema gen
This commit is contained in:
@@ -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"),
|
||||
});
|
||||
"
|
||||
`;
|
||||
@@ -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,
|
||||
});
|
||||
|
||||
@@ -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)"
|
||||
`;
|
||||
@@ -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,
|
||||
});
|
||||
});
|
||||
@@ -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"
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user