@tomei/sso
Version:
Tomei SSO Package
69 lines (59 loc) • 2.81 kB
text/typescript
import { GroupPrivilege } from '../../../../src/components/group-privilege/group-privilege';
import { GroupPrivilegeRepository } from '../../../../src/components/group-privilege/group-privilege.repository';
import { ClassError } from '@tomei/general';
describe('GroupPrivilege', () => {
afterEach(() => {
jest.restoreAllMocks();
});
it('should initialize with GroupPrivilegeAttr', async () => {
const mockGroupPrivilegeAttr = {
GroupPrivilegeId: 1,
GroupCode: 'group1',
SystemPrivilegeId: 'privilege1',
Status: 'active',
CreatedAt: new Date(),
UpdatedAt: new Date(),
CreatedById: 1,
UpdatedById: 1,
};
const findOneMock = jest
.spyOn(GroupPrivilegeRepository.prototype, 'findOne')
.mockResolvedValueOnce({ get: jest.fn().mockReturnValue(mockGroupPrivilegeAttr) } as any);
const groupPrivilege = await GroupPrivilege.init(null, 1);
expect(findOneMock).toBeCalledWith({
where: { GroupPrivilegeId: 1 },
transaction: null,
});
expect(groupPrivilege).toBeInstanceOf(GroupPrivilege);
expect(groupPrivilege.GroupPrivilegeId).toEqual(mockGroupPrivilegeAttr.GroupPrivilegeId);
expect(groupPrivilege.GroupCode).toEqual(mockGroupPrivilegeAttr.GroupCode);
expect(groupPrivilege.SystemPrivilegeId).toEqual(mockGroupPrivilegeAttr.SystemPrivilegeId);
expect(groupPrivilege.Status).toEqual(mockGroupPrivilegeAttr.Status);
expect(groupPrivilege.CreatedAt).toEqual(mockGroupPrivilegeAttr.CreatedAt);
expect(groupPrivilege.UpdatedAt).toEqual(mockGroupPrivilegeAttr.UpdatedAt);
expect(groupPrivilege.CreatedById).toEqual(mockGroupPrivilegeAttr.CreatedById);
expect(groupPrivilege.UpdatedById).toEqual(mockGroupPrivilegeAttr.UpdatedById);
});
it('should throw ClassError when GroupPrivilegeAttr is not found', async () => {
const findOneMock = jest
.spyOn(GroupPrivilegeRepository.prototype, 'findOne')
.mockResolvedValueOnce(null);
await expect(GroupPrivilege.init(null, 1)).rejects.toThrow(ClassError);
expect(findOneMock).toBeCalledWith({
where: { GroupPrivilegeId: 1 },
transaction: null,
});
});
it('should initialize with default values', async () => {
const groupPrivilege = await GroupPrivilege.init();
expect(groupPrivilege).toBeInstanceOf(GroupPrivilege);
expect(groupPrivilege.GroupPrivilegeId).toBeUndefined();
expect(groupPrivilege.GroupCode).toBeUndefined();
expect(groupPrivilege.SystemPrivilegeId).toBeUndefined();
expect(groupPrivilege.Status).toBeUndefined();
expect(groupPrivilege.CreatedAt).toBeUndefined();
expect(groupPrivilege.UpdatedAt).toBeUndefined();
expect(groupPrivilege.CreatedById).toBeUndefined();
expect(groupPrivilege.UpdatedById).toBeUndefined();
});
});