UNPKG

@tomei/sso

Version:
72 lines 4.3 kB
"use strict"; 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