/
index.test.ts
48 lines (47 loc) · 1.49 KB
/
index.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import { randomUUID, runBasicTests } from "@next-auth/adapter-test"
import { PrismaClient } from "@prisma/client"
import { PrismaAdapter } from "../src"
import { ObjectId } from "mongodb"
const prisma = new PrismaClient()
runBasicTests({
adapter: PrismaAdapter(prisma),
db: {
id() {
if (process.env.CONTAINER_NAME === "next-auth-mongodb-test") {
return new ObjectId().toHexString()
}
return randomUUID()
},
connect: async () => {
await Promise.all([
prisma.user.deleteMany({}),
prisma.account.deleteMany({}),
prisma.session.deleteMany({}),
prisma.verificationToken.deleteMany({}),
])
},
disconnect: async () => {
await Promise.all([
prisma.user.deleteMany({}),
prisma.account.deleteMany({}),
prisma.session.deleteMany({}),
prisma.verificationToken.deleteMany({}),
])
await prisma.$disconnect()
},
user: (id) => prisma.user.findUnique({ where: { id } }),
account: (provider_providerAccountId) =>
prisma.account.findUnique({ where: { provider_providerAccountId } }),
session: (sessionToken) =>
prisma.session.findUnique({ where: { sessionToken } }),
async verificationToken(identifier_token) {
const result = await prisma.verificationToken.findUnique({
where: { identifier_token },
})
if (!result) return null
// @ts-ignore
const { id: _, ...verificationToken } = result
return verificationToken
},
},
})