fix: update unit tests

This commit is contained in:
yassinedorbozgithub
2024-12-04 08:47:57 +01:00
parent 32f3dc8271
commit 6cbedcbc16
20 changed files with 92 additions and 52 deletions

View File

@@ -23,7 +23,7 @@ import {
rootMongooseTestModule,
} from '@/utils/test/test';
import { InvitationModel, Invitation } from '../schemas/invitation.schema';
import { Invitation, InvitationModel } from '../schemas/invitation.schema';
import { PermissionModel } from '../schemas/permission.schema';
import { RoleModel } from '../schemas/role.schema';
@@ -81,7 +81,10 @@ describe('InvitationRepository', () => {
const result = await invitationRepository.findOneAndPopulate(
invitation.id,
);
expect(invitationModel.findById).toHaveBeenCalledWith(invitation.id);
expect(invitationModel.findById).toHaveBeenCalledWith(
invitation.id,
undefined,
);
expect(result).toEqualPayload({
...toTestAgainst,
roles,
@@ -110,7 +113,7 @@ describe('InvitationRepository', () => {
return acc;
}, []);
expect(invitationModel.find).toHaveBeenCalledWith({});
expect(invitationModel.find).toHaveBeenCalledWith({}, undefined);
expect(result).toEqualPayload(invitationsWithRoles);
});
});

View File

@@ -56,7 +56,7 @@ describe('ModelRepository', () => {
it('should find a model and populate its permissions', async () => {
jest.spyOn(modelModel, 'findById');
const result = await modelRepository.findOneAndPopulate(model.id);
expect(modelModel.findById).toHaveBeenCalledWith(model.id);
expect(modelModel.findById).toHaveBeenCalledWith(model.id, undefined);
expect(result).toEqualPayload({
...modelFixtures.find(({ name }) => name === 'ContentType'),
permissions,
@@ -79,7 +79,7 @@ describe('ModelRepository', () => {
});
return acc;
}, []);
expect(modelModel.find).toHaveBeenCalledWith({});
expect(modelModel.find).toHaveBeenCalledWith({}, undefined);
expect(result).toEqualPayload(modelsWithPermissions);
});
});

View File

@@ -24,7 +24,7 @@ import { ModelRepository } from '../repositories/model.repository';
import { PermissionRepository } from '../repositories/permission.repository';
import { RoleRepository } from '../repositories/role.repository';
import { ModelModel } from '../schemas/model.schema';
import { PermissionModel, Permission } from '../schemas/permission.schema';
import { Permission, PermissionModel } from '../schemas/permission.schema';
import { RoleModel } from '../schemas/role.schema';
import { Action } from '../types/action.type';
@@ -77,8 +77,12 @@ describe('PermissionRepository', () => {
const model = await modelRepository.findOne(permission.model);
const result = await permissionRepository.findOneAndPopulate(
permission.id,
undefined,
);
expect(permissionModel.findById).toHaveBeenCalledWith(
permission.id,
undefined,
);
expect(permissionModel.findById).toHaveBeenCalledWith(permission.id);
expect(result).toEqualPayload({
...permissionFixtures.find(({ action }) => action === 'create'),
role,
@@ -111,7 +115,7 @@ describe('PermissionRepository', () => {
},
[],
);
expect(permissionModel.find).toHaveBeenCalledWith({});
expect(permissionModel.find).toHaveBeenCalledWith({}, undefined);
expect(result).toEqualPayload(permissionsWithRolesAndModels);
});
});

View File

@@ -74,7 +74,7 @@ describe('RoleRepository', () => {
jest.spyOn(roleModel, 'findById');
const permissions = await permissionRepository.find({ role: role.id });
const result = await roleRepository.findOneAndPopulate(role.id);
expect(roleModel.findById).toHaveBeenCalledWith(role.id);
expect(roleModel.findById).toHaveBeenCalledWith(role.id, undefined);
expect(result).toEqualPayload({
...roleFixtures.find(({ name }) => name === 'admin'),
users,
@@ -106,7 +106,7 @@ describe('RoleRepository', () => {
return acc;
}, []);
expect(roleModel.find).toHaveBeenCalledWith({});
expect(roleModel.find).toHaveBeenCalledWith({}, undefined);
expect(result).toEqualPayload(rolesWithPermissionsAndUsers);
});
});

View File

@@ -27,8 +27,8 @@ import { PermissionRepository } from '../repositories/permission.repository';
import { RoleRepository } from '../repositories/role.repository';
import { UserRepository } from '../repositories/user.repository';
import { PermissionModel } from '../schemas/permission.schema';
import { RoleModel, Role } from '../schemas/role.schema';
import { UserModel, User } from '../schemas/user.schema';
import { Role, RoleModel } from '../schemas/role.schema';
import { User, UserModel } from '../schemas/user.schema';
describe('UserRepository', () => {
let roleRepository: RoleRepository;
@@ -91,7 +91,7 @@ describe('UserRepository', () => {
it('should find one user and populate its role', async () => {
jest.spyOn(userModel, 'findById');
const result = await userRepository.findOneAndPopulate(user.id);
expect(userModel.findById).toHaveBeenCalledWith(user.id);
expect(userModel.findById).toHaveBeenCalledWith(user.id, undefined);
expect(result).toEqualPayload(
{
...userFixtures.find(({ username }) => username === 'admin'),
@@ -118,7 +118,7 @@ describe('UserRepository', () => {
return acc;
}, []);
expect(userModel.find).toHaveBeenCalledWith({});
expect(userModel.find).toHaveBeenCalledWith({}, undefined);
expect(result).toEqualPayload(usersWithRoles);
});
});

View File

@@ -77,7 +77,11 @@ describe('AuthService', () => {
'admin@admin.admin',
'adminadmin',
);
expect(userRepository.findOne).toHaveBeenCalledWith(searchCriteria, {});
expect(userRepository.findOne).toHaveBeenCalledWith(
searchCriteria,
{},
undefined,
);
expect(result.id).toBe(user.id);
});
it('should not validate user if the provided password is incorrect', async () => {
@@ -85,7 +89,11 @@ describe('AuthService', () => {
'admin@admin.admin',
'randomPassword',
);
expect(userRepository.findOne).toHaveBeenCalledWith(searchCriteria, {});
expect(userRepository.findOne).toHaveBeenCalledWith(
searchCriteria,
{},
undefined,
);
expect(result).toBeNull();
});
@@ -99,6 +107,7 @@ describe('AuthService', () => {
email: 'admin2@admin.admin',
},
{},
undefined,
);
expect(result).toBeNull();
});

View File

@@ -19,8 +19,8 @@ import {
import { ModelRepository } from '../repositories/model.repository';
import { PermissionRepository } from '../repositories/permission.repository';
import { ModelModel, Model } from '../schemas/model.schema';
import { PermissionModel, Permission } from '../schemas/permission.schema';
import { Model, ModelModel } from '../schemas/model.schema';
import { Permission, PermissionModel } from '../schemas/permission.schema';
import { ModelService } from './model.service';
@@ -83,6 +83,7 @@ describe('ModelService', () => {
expect(modelRepository.findAndPopulate).toHaveBeenCalledWith(
{},
undefined,
undefined,
);
expect(result).toEqualPayload(modelsWithPermissions);
});

View File

@@ -26,9 +26,9 @@ import { PermissionRepository } from '../repositories/permission.repository';
import { RoleRepository } from '../repositories/role.repository';
import { ModelModel } from '../schemas/model.schema';
import {
PermissionModel,
Permission,
PermissionFull,
PermissionModel,
} from '../schemas/permission.schema';
import { RoleModel } from '../schemas/role.schema';
import { Action } from '../types/action.type';
@@ -89,6 +89,7 @@ describe('PermissionService', () => {
const result = await permissionService.findOneAndPopulate(permission.id);
expect(permissionRepository.findOneAndPopulate).toHaveBeenLastCalledWith(
permission.id,
undefined,
);
expect(result).toEqualPayload({
...permissionFixtures.find(({ action }) => action === 'create'),

View File

@@ -20,9 +20,9 @@ import {
import { PermissionRepository } from '../repositories/permission.repository';
import { RoleRepository } from '../repositories/role.repository';
import { UserRepository } from '../repositories/user.repository';
import { PermissionModel, Permission } from '../schemas/permission.schema';
import { RoleModel, Role } from '../schemas/role.schema';
import { UserModel, User } from '../schemas/user.schema';
import { Permission, PermissionModel } from '../schemas/permission.schema';
import { Role, RoleModel } from '../schemas/role.schema';
import { User, UserModel } from '../schemas/user.schema';
import { roleFixtures } from './../../utils/test/fixtures/role';
import { RoleService } from './role.service';
@@ -72,8 +72,11 @@ describe('RoleService', () => {
describe('findOneAndPopulate', () => {
it('should find one role and populate its permissions and users', async () => {
jest.spyOn(roleRepository, 'findOneAndPopulate');
const result = await roleService.findOneAndPopulate(role.id);
expect(roleRepository.findOneAndPopulate).toHaveBeenCalledWith(role.id);
const result = await roleService.findOneAndPopulate(role.id, undefined);
expect(roleRepository.findOneAndPopulate).toHaveBeenCalledWith(
role.id,
undefined,
);
expect(result).toEqualPayload({
...roleFixtures.find(({ name }) => name == 'admin'),
users,

View File

@@ -28,8 +28,8 @@ import { PermissionRepository } from '../repositories/permission.repository';
import { RoleRepository } from '../repositories/role.repository';
import { UserRepository } from '../repositories/user.repository';
import { PermissionModel } from '../schemas/permission.schema';
import { RoleModel, Role } from '../schemas/role.schema';
import { UserModel, User } from '../schemas/user.schema';
import { Role, RoleModel } from '../schemas/role.schema';
import { User, UserModel } from '../schemas/user.schema';
import { PermissionService } from './permission.service';
import { RoleService } from './role.service';
@@ -100,7 +100,10 @@ describe('UserService', () => {
it('should find one user and populate its role', async () => {
jest.spyOn(userRepository, 'findOneAndPopulate');
const result = await userService.findOneAndPopulate(user.id);
expect(userRepository.findOneAndPopulate).toHaveBeenCalledWith(user.id);
expect(userRepository.findOneAndPopulate).toHaveBeenCalledWith(
user.id,
undefined,
);
expect(result).toEqualPayload(
{
...userFixtures.find(({ username }) => username === 'admin'),