feat: migrate from express to fastify
This commit is contained in:
@ -1,10 +0,0 @@
|
||||
import { formatErrors } from '../formatErrors'
|
||||
|
||||
test('__test__/utils/formatErrors', () => {
|
||||
expect(formatErrors('randomSring')).toEqual([])
|
||||
const errors = [
|
||||
{ message: 'some error message' },
|
||||
{ message: 'another error' }
|
||||
]
|
||||
expect(formatErrors(errors)).toEqual(['some error message', 'another error'])
|
||||
})
|
@ -1,57 +0,0 @@
|
||||
import request from 'supertest'
|
||||
|
||||
import application from '../../application'
|
||||
import User from '../../models/User'
|
||||
|
||||
interface AuthenticateUserOptions {
|
||||
name?: string
|
||||
email?: string
|
||||
password?: string
|
||||
shouldBeConfirmed?: boolean
|
||||
alreadySignedUp?: boolean
|
||||
}
|
||||
|
||||
export async function authenticateUserTest (
|
||||
options: AuthenticateUserOptions = {}
|
||||
): Promise<{
|
||||
accessToken: string
|
||||
refreshToken: string
|
||||
expiresIn: string
|
||||
type: 'Bearer'
|
||||
userId: number
|
||||
}> {
|
||||
const {
|
||||
name = 'John',
|
||||
email = 'contact@test.com',
|
||||
shouldBeConfirmed = true,
|
||||
password = 'test',
|
||||
alreadySignedUp = false
|
||||
} = options
|
||||
|
||||
if (!alreadySignedUp) {
|
||||
const { body: signupBody } = await request(application)
|
||||
.post('/users/signup')
|
||||
.send({ name, email, password })
|
||||
.expect(201)
|
||||
let signinResponse: any = { body: {} }
|
||||
if (shouldBeConfirmed) {
|
||||
const user = await User.findOne({ where: { id: signupBody.user.id } })
|
||||
await request(application)
|
||||
.get(`/users/confirmEmail?tempToken=${user?.tempToken as string}`)
|
||||
.send()
|
||||
.expect(200)
|
||||
signinResponse = await request(application)
|
||||
.post('/users/signin')
|
||||
.send({ email, password })
|
||||
.expect(200)
|
||||
}
|
||||
|
||||
return { ...signinResponse.body, userId: signupBody.user.id }
|
||||
}
|
||||
const signinResponse = await request(application)
|
||||
.post('/users/signin')
|
||||
.send({ email, password })
|
||||
.expect(200)
|
||||
const user = await User.findOne({ where: { email } })
|
||||
return { ...signinResponse.body, userId: user?.id }
|
||||
}
|
28
src/__test__/utils/authenticateUserTest.ts
Normal file
28
src/__test__/utils/authenticateUserTest.ts
Normal file
@ -0,0 +1,28 @@
|
||||
import { User } from '@prisma/client'
|
||||
|
||||
import { refreshTokenExample } from '../../models/RefreshToken.js'
|
||||
import { userExample, UserJWT } from '../../models/User.js'
|
||||
import { userSettingsExample } from '../../models/UserSettings.js'
|
||||
import {
|
||||
generateAccessToken,
|
||||
generateRefreshToken
|
||||
} from '../../tools/utils/jwtToken'
|
||||
import { prismaMock } from '../setup'
|
||||
|
||||
export const authenticateUserTest = async (): Promise<{
|
||||
accessToken: string
|
||||
refreshToken: string
|
||||
user: User
|
||||
}> => {
|
||||
prismaMock.user.findUnique.mockResolvedValue(userExample)
|
||||
prismaMock.userSetting.findFirst.mockResolvedValue(userSettingsExample)
|
||||
prismaMock.oAuth.findMany.mockResolvedValue([])
|
||||
prismaMock.refreshToken.create.mockResolvedValue(refreshTokenExample)
|
||||
const userJWT: UserJWT = {
|
||||
currentStrategy: 'local',
|
||||
id: 1
|
||||
}
|
||||
const accessToken = generateAccessToken(userJWT)
|
||||
const refreshToken = await generateRefreshToken(userJWT)
|
||||
return { accessToken, refreshToken, user: userExample }
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
/** formatErrors for testing purpose (no types safety) */
|
||||
export const formatErrors = (errors: any): string[] => {
|
||||
try {
|
||||
return errors.map((e: any) => e.message)
|
||||
} catch {
|
||||
return []
|
||||
}
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
export const wait = async (ms: number): Promise<void> => {
|
||||
return await new Promise((resolve) => {
|
||||
setTimeout(resolve, ms)
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user