27 lines
793 B
JavaScript
27 lines
793 B
JavaScript
import { createRole } from './role';
|
|
import { faker } from '@faker-js/faker';
|
|
import User from '../../src/models/user';
|
|
|
|
export const createUser = async (params = {}) => {
|
|
params.roleId = params?.roleId || (await createRole()).id;
|
|
params.fullName = params?.fullName || faker.person.fullName();
|
|
params.email = params?.email || faker.internet.email();
|
|
params.password = params?.password || faker.internet.password();
|
|
|
|
const user = await User.query().insertAndFetch(params);
|
|
|
|
// important to mimic request.currentUser functionality.
|
|
const userWithRoleAndPermissions = await user
|
|
.$query()
|
|
.leftJoinRelated({
|
|
role: true,
|
|
permissions: true,
|
|
})
|
|
.withGraphFetched({
|
|
role: true,
|
|
permissions: true,
|
|
});
|
|
|
|
return userWithRoleAndPermissions;
|
|
};
|