33 lines
894 B
TypeScript
33 lines
894 B
TypeScript
import { Factory } from "fishery"
|
|
import { faker } from "@faker-js/faker/locale/en_CA"
|
|
|
|
import { User } from "@/models"
|
|
|
|
export const userFactory = Factory.define<User>(({ sequence, params, onCreate }) => {
|
|
onCreate((user) => {
|
|
try {
|
|
return user.save()
|
|
} catch (error) {
|
|
console.error(error)
|
|
throw new Error(
|
|
`Could not create User with attributes: ${JSON.stringify(user.dataValues, null, 2)}`
|
|
)
|
|
}
|
|
})
|
|
|
|
const firstName = params.firstName || `${faker.person.firstName()}-${sequence}`
|
|
const lastName = params.lastName || faker.person.lastName()
|
|
const email = params.email || faker.internet.email({ firstName, lastName })
|
|
|
|
return User.build({
|
|
email,
|
|
auth0Subject: params.auth0Subject || email,
|
|
firstName,
|
|
lastName,
|
|
displayName: `${firstName} ${lastName}`,
|
|
roles: [User.Roles.USER],
|
|
})
|
|
})
|
|
|
|
export default userFactory
|