mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
fix: unit tests
This commit is contained in:
@@ -92,10 +92,8 @@ describe('ModelController', () => {
|
||||
describe('find', () => {
|
||||
it('should find models', async () => {
|
||||
jest.spyOn(modelService, 'findAndPopulate');
|
||||
const result = await modelController.find([], {});
|
||||
expect(modelService.findAndPopulate).toHaveBeenCalledWith({}, [
|
||||
'permissions',
|
||||
]);
|
||||
const result = await modelController.find(['permissions'], {});
|
||||
expect(modelService.findAndPopulate).toHaveBeenCalledWith({});
|
||||
expect(result).toEqualPayload(
|
||||
modelFixtures.map((modelFixture) => ({
|
||||
...modelFixture,
|
||||
@@ -122,9 +120,7 @@ describe('ModelController', () => {
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
expect(modelService.findAndPopulate).toHaveBeenCalledWith({}, [
|
||||
'permissions',
|
||||
]);
|
||||
expect(modelService.findAndPopulate).toHaveBeenCalledWith({});
|
||||
expect(result).toEqualPayload(modelsWithPermissionsAndUsers);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -148,9 +148,7 @@ describe('UserController', () => {
|
||||
it('should find one user and populate its roles', async () => {
|
||||
jest.spyOn(userService, 'findOneAndPopulate');
|
||||
const result = await userController.findOne(user.id, ['roles']);
|
||||
expect(userService.findOneAndPopulate).toHaveBeenCalledWith(user.id, [
|
||||
'roles',
|
||||
]);
|
||||
expect(userService.findOneAndPopulate).toHaveBeenCalledWith(user.id);
|
||||
expect(result).toEqualPayload(
|
||||
{
|
||||
...userFixtures.find(({ username }) => username === 'admin'),
|
||||
@@ -166,9 +164,7 @@ describe('UserController', () => {
|
||||
|
||||
it('should find users, and for each user populate the corresponding roles', async () => {
|
||||
jest.spyOn(userService, 'findPageAndPopulate');
|
||||
const result = await userService.findPageAndPopulate({}, pageQuery, [
|
||||
'roles',
|
||||
]);
|
||||
const result = await userService.findPageAndPopulate({}, pageQuery);
|
||||
|
||||
const usersWithRoles = userFixtures.reduce((acc, currUser) => {
|
||||
acc.push({
|
||||
@@ -181,7 +177,6 @@ describe('UserController', () => {
|
||||
expect(userService.findPageAndPopulate).toHaveBeenCalledWith(
|
||||
{},
|
||||
pageQuery,
|
||||
['roles'],
|
||||
);
|
||||
expect(result).toEqualPayload(usersWithRoles, [
|
||||
...IGNORED_FIELDS,
|
||||
|
||||
@@ -23,7 +23,7 @@ import { Model as ModelType } from './../schemas/model.schema';
|
||||
import { ModelRepository } from '../repositories/model.repository';
|
||||
import { PermissionRepository } from '../repositories/permission.repository';
|
||||
import { ModelModel } from '../schemas/model.schema';
|
||||
import { PermissionModel, Permission } from '../schemas/permission.schema';
|
||||
import { Permission, PermissionModel } from '../schemas/permission.schema';
|
||||
|
||||
describe('ModelRepository', () => {
|
||||
let modelRepository: ModelRepository;
|
||||
@@ -69,7 +69,7 @@ describe('ModelRepository', () => {
|
||||
jest.spyOn(modelModel, 'find');
|
||||
const allModels = await modelRepository.findAll();
|
||||
const allPermissions = await permissionRepository.findAll();
|
||||
const result = await modelRepository.findAndPopulate({}, ['permissions']);
|
||||
const result = await modelRepository.findAndPopulate({});
|
||||
const modelsWithPermissions = allModels.reduce((acc, currModel) => {
|
||||
acc.push({
|
||||
...currModel,
|
||||
|
||||
@@ -13,6 +13,7 @@ import { MongooseModule, getModelToken } from '@nestjs/mongoose';
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { Model } from 'mongoose';
|
||||
|
||||
import { AttachmentModel } from '@/attachment/schemas/attachment.schema';
|
||||
import { LoggerService } from '@/logger/logger.service';
|
||||
import { IGNORED_TEST_FIELDS } from '@/utils/test/constants';
|
||||
import { installPermissionFixtures } from '@/utils/test/fixtures/permission';
|
||||
@@ -53,7 +54,12 @@ describe('UserRepository', () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
imports: [
|
||||
rootMongooseTestModule(installPermissionFixtures),
|
||||
MongooseModule.forFeature([UserModel, PermissionModel, RoleModel]),
|
||||
MongooseModule.forFeature([
|
||||
UserModel,
|
||||
PermissionModel,
|
||||
RoleModel,
|
||||
AttachmentModel,
|
||||
]),
|
||||
],
|
||||
providers: [
|
||||
LoggerService,
|
||||
@@ -85,9 +91,7 @@ describe('UserRepository', () => {
|
||||
describe('findOneAndPopulate', () => {
|
||||
it('should find one user and populate its role', async () => {
|
||||
jest.spyOn(userModel, 'findById');
|
||||
const result = await userRepository.findOneAndPopulate(user.id, [
|
||||
'roles',
|
||||
]);
|
||||
const result = await userRepository.findOneAndPopulate(user.id);
|
||||
expect(userModel.findById).toHaveBeenCalledWith(user.id);
|
||||
expect(result).toEqualPayload(
|
||||
{
|
||||
@@ -106,9 +110,7 @@ describe('UserRepository', () => {
|
||||
jest.spyOn(userRepository, 'findPageAndPopulate');
|
||||
const allUsers = await userRepository.findAll();
|
||||
const allRoles = await roleRepository.findAll();
|
||||
const result = await userRepository.findPageAndPopulate({}, pageQuery, [
|
||||
'roles',
|
||||
]);
|
||||
const result = await userRepository.findPageAndPopulate({}, pageQuery);
|
||||
const usersWithRoles = allUsers.reduce((acc, currUser) => {
|
||||
acc.push({
|
||||
...currUser,
|
||||
|
||||
@@ -12,10 +12,10 @@ import { Injectable } from '@nestjs/common';
|
||||
import { BaseSeeder } from '@/utils/generics/base-seeder';
|
||||
|
||||
import { ModelRepository } from '../repositories/model.repository';
|
||||
import { Model } from '../schemas/model.schema';
|
||||
import { Model, ModelFull, ModelPopulate } from '../schemas/model.schema';
|
||||
|
||||
@Injectable()
|
||||
export class ModelSeeder extends BaseSeeder<Model> {
|
||||
export class ModelSeeder extends BaseSeeder<Model, ModelPopulate, ModelFull> {
|
||||
constructor(private readonly modelRepository: ModelRepository) {
|
||||
super(modelRepository);
|
||||
}
|
||||
|
||||
@@ -12,10 +12,18 @@ import { Injectable } from '@nestjs/common';
|
||||
import { BaseSeeder } from '@/utils/generics/base-seeder';
|
||||
|
||||
import { PermissionRepository } from '../repositories/permission.repository';
|
||||
import { Permission } from '../schemas/permission.schema';
|
||||
import {
|
||||
Permission,
|
||||
PermissionFull,
|
||||
PermissionPopulate,
|
||||
} from '../schemas/permission.schema';
|
||||
|
||||
@Injectable()
|
||||
export class PermissionSeeder extends BaseSeeder<Permission> {
|
||||
export class PermissionSeeder extends BaseSeeder<
|
||||
Permission,
|
||||
PermissionPopulate,
|
||||
PermissionFull
|
||||
> {
|
||||
constructor(private readonly permissionRepository: PermissionRepository) {
|
||||
super(permissionRepository);
|
||||
}
|
||||
|
||||
@@ -12,10 +12,10 @@ import { Injectable } from '@nestjs/common';
|
||||
import { BaseSeeder } from '@/utils/generics/base-seeder';
|
||||
|
||||
import { RoleRepository } from '../repositories/role.repository';
|
||||
import { Role } from '../schemas/role.schema';
|
||||
import { Role, RoleFull, RolePopulate } from '../schemas/role.schema';
|
||||
|
||||
@Injectable()
|
||||
export class RoleSeeder extends BaseSeeder<Role> {
|
||||
export class RoleSeeder extends BaseSeeder<Role, RolePopulate, RoleFull> {
|
||||
constructor(private readonly roleRepository: RoleRepository) {
|
||||
super(roleRepository);
|
||||
}
|
||||
|
||||
@@ -12,10 +12,10 @@ import { Injectable } from '@nestjs/common';
|
||||
import { BaseSeeder } from '@/utils/generics/base-seeder';
|
||||
|
||||
import { UserRepository } from '../repositories/user.repository';
|
||||
import { User } from '../schemas/user.schema';
|
||||
import { User, UserFull, UserPopulate } from '../schemas/user.schema';
|
||||
|
||||
@Injectable()
|
||||
export class UserSeeder extends BaseSeeder<User> {
|
||||
export class UserSeeder extends BaseSeeder<User, UserPopulate, UserFull> {
|
||||
constructor(private readonly userRepository: UserRepository) {
|
||||
super(userRepository);
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ describe('ModelService', () => {
|
||||
jest.spyOn(modelRepository, 'findAndPopulate');
|
||||
const models = await modelRepository.findAll();
|
||||
const permissions = await permissionRepository.findAll();
|
||||
const result = await modelService.findAndPopulate({}, ['permissions']);
|
||||
const result = await modelService.findAndPopulate({});
|
||||
const modelsWithPermissions = models.reduce((acc, currModel) => {
|
||||
acc.push({
|
||||
...currModel,
|
||||
@@ -80,9 +80,10 @@ describe('ModelService', () => {
|
||||
});
|
||||
return acc;
|
||||
}, []);
|
||||
expect(modelRepository.findAndPopulate).toHaveBeenCalledWith({}, [
|
||||
'permissions',
|
||||
]);
|
||||
expect(modelRepository.findAndPopulate).toHaveBeenCalledWith(
|
||||
{},
|
||||
undefined,
|
||||
);
|
||||
expect(result).toEqualPayload(modelsWithPermissions);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -99,10 +99,8 @@ describe('UserService', () => {
|
||||
describe('findOneAndPopulate', () => {
|
||||
it('should find one user and populate its role', async () => {
|
||||
jest.spyOn(userRepository, 'findOneAndPopulate');
|
||||
const result = await userService.findOneAndPopulate(user.id, ['roles']);
|
||||
expect(userRepository.findOneAndPopulate).toHaveBeenCalledWith(user.id, [
|
||||
'roles',
|
||||
]);
|
||||
const result = await userService.findOneAndPopulate(user.id);
|
||||
expect(userRepository.findOneAndPopulate).toHaveBeenCalledWith(user.id);
|
||||
expect(result).toEqualPayload(
|
||||
{
|
||||
...userFixtures.find(({ username }) => username === 'admin'),
|
||||
@@ -118,9 +116,7 @@ describe('UserService', () => {
|
||||
const pageQuery = getPageQuery<User>({ sort: ['_id', 'asc'] });
|
||||
jest.spyOn(userRepository, 'findPageAndPopulate');
|
||||
const allUsers = await userRepository.findAll();
|
||||
const result = await userService.findPageAndPopulate({}, pageQuery, [
|
||||
'roles',
|
||||
]);
|
||||
const result = await userService.findPageAndPopulate({}, pageQuery);
|
||||
const usersWithRoles = allUsers.reduce((acc, currUser) => {
|
||||
acc.push({
|
||||
...currUser,
|
||||
@@ -132,7 +128,6 @@ describe('UserService', () => {
|
||||
expect(userRepository.findPageAndPopulate).toHaveBeenCalledWith(
|
||||
{},
|
||||
pageQuery,
|
||||
['roles'],
|
||||
);
|
||||
expect(result).toEqualPayload(usersWithRoles);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user