@tomei/sso
Version:
Tomei SSO Package
87 lines (78 loc) • 3.16 kB
text/typescript
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);
});
});
});