mirror of
https://github.com/LukeHagar/better-auth.git
synced 2025-12-11 04:19:31 +00:00
117 lines
2.7 KiB
TypeScript
117 lines
2.7 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { prismaAdapter } from "better-auth/adapters/prisma";
|
|
import { generatePrismaSchema } from "../src/generators/prisma";
|
|
import { twoFactor, username } from "better-auth/plugins";
|
|
import { generateDrizzleSchema } from "../src/generators/drizzle";
|
|
import { drizzleAdapter } from "better-auth/adapters/drizzle";
|
|
import { generateMigrations } from "../src/generators/kysely";
|
|
import Database from "better-sqlite3";
|
|
import type { BetterAuthOptions } from "better-auth";
|
|
|
|
describe("generate", async () => {
|
|
it("should generate prisma schema", async () => {
|
|
const schema = await generatePrismaSchema({
|
|
file: "test.prisma",
|
|
adapter: prismaAdapter(
|
|
{},
|
|
{
|
|
provider: "postgresql",
|
|
},
|
|
)({} as BetterAuthOptions),
|
|
options: {
|
|
database: prismaAdapter(
|
|
{},
|
|
{
|
|
provider: "postgresql",
|
|
},
|
|
),
|
|
plugins: [twoFactor(), username()],
|
|
},
|
|
});
|
|
expect(schema.code).toMatchFileSnapshot("./__snapshots__/schema.prisma");
|
|
});
|
|
|
|
it("should generate prisma schema for mongodb", async () => {
|
|
const schema = await generatePrismaSchema({
|
|
file: "test.prisma",
|
|
adapter: prismaAdapter(
|
|
{},
|
|
{
|
|
provider: "mongodb",
|
|
},
|
|
)({} as BetterAuthOptions),
|
|
options: {
|
|
database: prismaAdapter(
|
|
{},
|
|
{
|
|
provider: "mongodb",
|
|
},
|
|
),
|
|
plugins: [twoFactor(), username()],
|
|
},
|
|
});
|
|
expect(schema.code).toMatchFileSnapshot(
|
|
"./__snapshots__/schema-mongodb.prisma",
|
|
);
|
|
});
|
|
|
|
it("should generate prisma schema for mysql", async () => {
|
|
const schema = await generatePrismaSchema({
|
|
file: "test.prisma",
|
|
adapter: prismaAdapter(
|
|
{},
|
|
{
|
|
provider: "mysql",
|
|
},
|
|
)({} as BetterAuthOptions),
|
|
options: {
|
|
database: prismaAdapter(
|
|
{},
|
|
{
|
|
provider: "mongodb",
|
|
},
|
|
),
|
|
plugins: [twoFactor(), username()],
|
|
},
|
|
});
|
|
expect(schema.code).toMatchFileSnapshot(
|
|
"./__snapshots__/schema-mysql.prisma",
|
|
);
|
|
});
|
|
|
|
it("should generate drizzle schema", async () => {
|
|
const schema = await generateDrizzleSchema({
|
|
file: "test.drizzle",
|
|
adapter: drizzleAdapter(
|
|
{},
|
|
{
|
|
provider: "pg",
|
|
schema: {},
|
|
},
|
|
)({} as BetterAuthOptions),
|
|
options: {
|
|
database: drizzleAdapter(
|
|
{},
|
|
{
|
|
provider: "pg",
|
|
schema: {},
|
|
},
|
|
),
|
|
plugins: [twoFactor(), username()],
|
|
},
|
|
});
|
|
expect(schema.code).toMatchFileSnapshot("./__snapshots__/auth-schema.txt");
|
|
});
|
|
|
|
it("should generate kysely schema", async () => {
|
|
const schema = await generateMigrations({
|
|
file: "test.sql",
|
|
options: {
|
|
database: new Database(":memory:"),
|
|
},
|
|
adapter: {} as any,
|
|
});
|
|
expect(schema.code).toMatchFileSnapshot("./__snapshots__/migrations.sql");
|
|
});
|
|
});
|