UNPKG

@tomei/sso

Version:
87 lines (78 loc) 3.16 kB
import { UserGroup } from '../../../../src/components/user-group/user-group'; import { UserGroupRepository } from '../../../../src/components/user-group/user-group.repository'; import { ClassError } from '@tomei/general'; describe('UserGroup', () => { let userGroup: UserGroup; const userGroupAttr = { UserGroupId: 1, UserId: 1, GroupCode: 'group1', Status: 'active', InheritGroupPrivilegeYN: 'yes', InheritGroupSystemAccessYN: 'yes', CreatedById: 1, CreatedAt: new Date(), UpdatedById: 1, UpdatedAt: new Date(), }; beforeEach(() => { userGroup = new (UserGroup as any)(userGroupAttr); }); afterEach(() => { jest.clearAllMocks(); }); describe('constructor', () => { it('should create a new UserGroup instance', () => { expect(userGroup).toBeDefined(); expect(userGroup).toBeInstanceOf(UserGroup); expect(userGroup.UserGroupId).toBe(userGroupAttr.UserGroupId); expect(userGroup.UserId).toBe(userGroupAttr.UserId); expect(userGroup.GroupCode).toBe(userGroupAttr.GroupCode); expect(userGroup.Status).toBe(userGroupAttr.Status); expect(userGroup.InheritGroupPrivilegeYN).toBe( userGroupAttr.InheritGroupPrivilegeYN ); expect(userGroup.InheritGroupSystemAccessYN).toBe( userGroupAttr.InheritGroupSystemAccessYN ); expect(userGroup.CreatedById).toBe(userGroupAttr.CreatedById); expect(userGroup.CreatedAt).toBe(userGroupAttr.CreatedAt); expect(userGroup.UpdatedById).toBe(userGroupAttr.UpdatedById); expect(userGroup.UpdatedAt).toBe(userGroupAttr.UpdatedAt); }); }); describe('init', () => { it('should initialize UserGroup with valid UserGroupId', async () => { const findOneMock = jest .spyOn(UserGroupRepository.prototype, 'findOne') .mockResolvedValueOnce(userGroupAttr as any); const result = await UserGroup.init(null, 1); expect(findOneMock).toHaveBeenCalledTimes(1); expect(findOneMock).toHaveBeenCalledWith({ where: { UserGroupId: 1 }, transaction: null, }); expect(result).toBeInstanceOf(UserGroup); expect(result.UserGroupId).toBe(userGroupAttr.UserGroupId); expect(result.UserId).toBe(userGroupAttr.UserId); expect(result.GroupCode).toBe(userGroupAttr.GroupCode); expect(result.Status).toBe(userGroupAttr.Status); expect(result.InheritGroupPrivilegeYN).toBe( userGroupAttr.InheritGroupPrivilegeYN ); expect(result.InheritGroupSystemAccessYN).toBe( userGroupAttr.InheritGroupSystemAccessYN ); expect(result.CreatedById).toBe(userGroupAttr.CreatedById); expect(result.CreatedAt).toBe(userGroupAttr.CreatedAt); expect(result.UpdatedById).toBe(userGroupAttr.UpdatedById); expect(result.UpdatedAt).toBe(userGroupAttr.UpdatedAt); }); it('should throw ClassError when UserGroupId is not found', async () => { jest .spyOn(UserGroupRepository.prototype, 'findOne') .mockResolvedValueOnce(null); await expect(UserGroup.init(null, 1)).rejects.toThrow(ClassError); }); }); });