@tomei/sso
Version:
Tomei SSO Package
72 lines • 4.3 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const group_1 = require("../../../../src/components/group/group");
const group_repository_1 = require("../../../../src/components/group/group.repository");
const general_1 = require("@tomei/general");
const group_type_enum_1 = require("../../../../src/enum/group-type.enum");
describe('Group', () => {
afterEach(() => {
jest.clearAllMocks();
});
it('should initialize a group with valid GroupCode', () => __awaiter(void 0, void 0, void 0, function* () {
const groupAttr = {
GroupCode: 'group1',
Name: 'Group 1',
Description: 'This is Group 1',
Type: group_type_enum_1.GroupTypeEnum.ROLE,
ParentGroupCode: 'parentGroup1',
InheritParentPrivilegeYN: 'Y',
InheritParentSystemAccessYN: 'N',
Status: 'Active',
CreatedById: 1,
CreatedAt: new Date(),
UpdatedById: 2,
UpdatedAt: new Date(),
};
const groupRepositoryMock = jest.spyOn(group_repository_1.GroupRepository.prototype, 'findByPk').mockResolvedValueOnce(Object.assign(Object.assign({}, groupAttr), { get: () => groupAttr }));
const result = yield group_1.Group.init(null, 'group1');
expect(result).toBeInstanceOf(group_1.Group);
expect(result.GroupCode).toBe(groupAttr.GroupCode);
expect(result.Name).toBe(groupAttr.Name);
expect(result.Description).toBe(groupAttr.Description);
expect(result.Type).toBe(groupAttr.Type);
expect(result.ParentGroupCode).toBe(groupAttr.ParentGroupCode);
expect(result.InheritParentPrivilegeYN).toBe(groupAttr.InheritParentPrivilegeYN);
expect(result.InheritParentSystemAccessYN).toBe(groupAttr.InheritParentSystemAccessYN);
expect(result.Status).toBe(groupAttr.Status);
expect(result.CreatedById).toBe(groupAttr.CreatedById);
expect(result.CreatedAt).toBe(groupAttr.CreatedAt);
expect(result.UpdatedById).toBe(groupAttr.UpdatedById);
expect(result.UpdatedAt).toBe(groupAttr.UpdatedAt);
expect(groupRepositoryMock).toHaveBeenCalledTimes(1);
expect(groupRepositoryMock).toHaveBeenCalledWith('group1', {
transaction: null,
});
}));
it('should throw an error when initializing a group with invalid GroupCode', () => __awaiter(void 0, void 0, void 0, function* () {
const groupRepositoryMock = jest.spyOn(group_repository_1.GroupRepository.prototype, 'findByPk').mockResolvedValueOnce(null);
yield expect(group_1.Group.init(null, 'invalidGroupCode')).rejects.toThrow(new general_1.ClassError('Group', 'GroupErrMsg01', 'Failed To Initialize Group'));
expect(groupRepositoryMock).toHaveBeenCalledTimes(1);
expect(groupRepositoryMock).toHaveBeenCalledWith('invalidGroupCode', {
transaction: null,
});
}));
it('should throw an error when initializing a group with an error', () => __awaiter(void 0, void 0, void 0, function* () {
const groupRepositoryMock = jest.spyOn(group_repository_1.GroupRepository.prototype, 'findByPk').mockRejectedValueOnce(new Error('Database error'));
yield expect(group_1.Group.init(null, 'group1')).rejects.toThrow(new general_1.ClassError('Group', 'GroupErrMsg01', 'Failed To Initialize Group'));
expect(groupRepositoryMock).toHaveBeenCalledTimes(1);
expect(groupRepositoryMock).toHaveBeenCalledWith('group1', {
transaction: null,
});
}));
});
//# sourceMappingURL=group.spec.js.map