Files
archived-next-auth/packages/adapter-prisma/tests/index.test.ts
Balázs Orbán 6132c3fa75 fix(ts): match TS types better with implementation (#4953)
* refactor(ts): export `AdapterAccount` from `next-auth/adapters`

* chore: run linter, remove prisma warning

* fix(ts): match TS with implementation closer

* remove unused import

* rename error

* add missing dev dependency

* fix type

* fix type

* fix more types and tests

* remove unused `id`

* skip upstash tests in CI

* revert some changes

* fix type

* revert some change

* revert some change

* revert some change

* revert some changes

* update lock file

* revert line change

* revert some change

* improve adapter & oauth typing

* fix test, revert

* apply review suggestion

* Add test for new rejection logics

* Update assert.test.ts

* fix: Hubspot config

* restore some ts-expect-error

* fix: tests in mirko-orm

* fix: remove redundant id: string

* fix: use ts-expect-errors

* fix: simplify provider type

* fix: normalize user options

* restore ts-expect-errors

Co-authored-by: Thang Vu <hi@thvu.dev>
2022-10-09 21:54:01 +07:00

49 lines
1.5 KiB
TypeScript

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 // MongoDB needs an ID, but we don't
delete result.id
return result
},
},
})