UNPKG

@tomei/sso

Version:
90 lines (81 loc) 3.33 kB
import { UserSystemAccess } from '../../../../src/components/user-system-access/user-system-access'; import { UserSystemAccessRepository } from '../../../../src/components/user-system-access/user-system-access.repository'; import { ClassError } from '@tomei/general'; describe('UserSystemAccess', () => { let userSystemAccess: UserSystemAccess; const userSystemAccessAttr = { UserSystemAccessId: 1, UserId: 1, SystemCode: 'system1', Status: 'active', CreatedById: 1, CreatedAt: new Date(), UpdatedById: 1, UpdatedAt: new Date(), }; beforeEach(() => { userSystemAccess = new (UserSystemAccess as any)(userSystemAccessAttr); }); afterEach(() => { jest.clearAllMocks(); }); describe('constructor', () => { it('should create a new UserSystemAccess instance', () => { expect(userSystemAccess).toBeDefined(); expect(userSystemAccess).toBeInstanceOf(UserSystemAccess); expect(userSystemAccess.UserSystemAccessId).toBe( userSystemAccessAttr.UserSystemAccessId ); expect(userSystemAccess.UserId).toBe(userSystemAccessAttr.UserId); expect(userSystemAccess.SystemCode).toBe(userSystemAccessAttr.SystemCode); expect(userSystemAccess.Status).toBe(userSystemAccessAttr.Status); expect(userSystemAccess.CreatedById).toBe( userSystemAccessAttr.CreatedById ); expect(userSystemAccess.CreatedAt).toBe(userSystemAccessAttr.CreatedAt); expect(userSystemAccess.UpdatedById).toBe( userSystemAccessAttr.UpdatedById ); expect(userSystemAccess.UpdatedAt).toBe(userSystemAccessAttr.UpdatedAt); }); }); describe('init', () => { it('should initialize UserSystemAccess with valid UserSystemAccessId', async () => { const findOneMock = jest .spyOn(UserSystemAccessRepository.prototype, 'findOne') .mockResolvedValueOnce({ ...userSystemAccessAttr, get: () => userSystemAccessAttr, } as any); const result = await UserSystemAccess.init(null, 1); expect(findOneMock).toHaveBeenCalledTimes(1); expect(findOneMock).toHaveBeenCalledWith({ where: { UserSystemAccessId: 1 }, transaction: null, }); expect(result).toBeInstanceOf(UserSystemAccess); expect(result.UserSystemAccessId).toBe( userSystemAccessAttr.UserSystemAccessId ); expect(result.UserId).toBe(userSystemAccessAttr.UserId); expect(result.SystemCode).toBe(userSystemAccessAttr.SystemCode); expect(result.Status).toBe(userSystemAccessAttr.Status); expect(result.CreatedById).toBe(userSystemAccessAttr.CreatedById); expect(result.CreatedAt).toBe(userSystemAccessAttr.CreatedAt); expect(result.UpdatedById).toBe(userSystemAccessAttr.UpdatedById); expect(result.UpdatedAt).toBe(userSystemAccessAttr.UpdatedAt); }); it('should throw ClassError when UserSystemAccessId is not found', async () => { jest .spyOn(UserSystemAccessRepository.prototype, 'findOne') .mockResolvedValueOnce(null); try { await UserSystemAccess.init(null, 1) expect(false).toBe(true); } catch (error) { expect(error).toBeInstanceOf(ClassError); expect(error.message).toBe('UserSystemAccess not found'); } }); }); });