@tomei/sso 0.64.0-dev.2 → 0.64.0-staging.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.gitlab-ci.yml +16 -16
  3. package/.husky/commit-msg +9 -9
  4. package/.husky/pre-commit +7 -7
  5. package/.prettierrc +4 -4
  6. package/Jenkinsfile +57 -57
  7. package/README.md +23 -23
  8. package/__tests__/unit/components/group/group.spec.ts +79 -79
  9. package/__tests__/unit/components/group-object-privilege/group-object-privilege.spec.ts +88 -88
  10. package/__tests__/unit/components/group-privilege/group-privilege.spec.ts +68 -68
  11. package/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.ts +66 -66
  12. package/__tests__/unit/components/group-system-access/group-system-access.spec.ts +83 -83
  13. package/__tests__/unit/components/login-user/l.spec.ts +746 -746
  14. package/__tests__/unit/components/login-user/login.spec.ts +1164 -1164
  15. package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +31 -31
  16. package/__tests__/unit/components/system/system.spec.ts +254 -254
  17. package/__tests__/unit/components/system-privilege/system-privilege.spec.ts +83 -83
  18. package/__tests__/unit/components/user-group/user-group.spec.ts +86 -86
  19. package/__tests__/unit/components/user-object-privilege/user-object-privilege.spec.ts +78 -78
  20. package/__tests__/unit/components/user-privilege/user-privilege.spec.ts +72 -72
  21. package/__tests__/unit/components/user-system-access/user-system-access.spec.ts +89 -89
  22. package/__tests__/unit/redis-client/redis.service.spec.ts +23 -23
  23. package/__tests__/unit/session/session.service.spec.ts +47 -47
  24. package/__tests__/unit/system-privilege/system-privilage.spec.ts +91 -91
  25. package/create-sso-user.sql +39 -39
  26. package/dist/tsconfig.tsbuildinfo +1 -1
  27. package/eslint.config.mjs +58 -58
  28. package/jest.config.js +14 -14
  29. package/migrations/20240314080602-create-user-table.js +124 -124
  30. package/migrations/20240314080603-create-user-group-table.js +85 -85
  31. package/migrations/20240314080604-create-user-user-group-table.js +55 -55
  32. package/migrations/20240314080605-create-login-history-table.js +53 -53
  33. package/migrations/20240527064925-create-system-table.js +78 -78
  34. package/migrations/20240527064926-create-system-privilege-table.js +71 -71
  35. package/migrations/20240527065342-create-group-table.js +93 -93
  36. package/migrations/20240527065633-create-group-reporting-user-table.js +76 -76
  37. package/migrations/20240528011551-create-group-system-access-table.js +72 -72
  38. package/migrations/20240528023018-user-system-access-table.js +75 -75
  39. package/migrations/20240528032229-user-privilege-table.js +76 -76
  40. package/migrations/20240528063003-create-group-privilege-table.js +76 -76
  41. package/migrations/20240528063051-create-group-object-privilege-table.js +84 -84
  42. package/migrations/20240528063107-create-user-object-privilege-table.js +84 -84
  43. package/migrations/20240528063108-create-api-key-table.js +85 -85
  44. package/migrations/20241104104802-create-building-table.js +95 -95
  45. package/migrations/20250108091132-add-area-manager-user-id-to-building-table.js +14 -14
  46. package/migrations/20250108091133-add-passcode-to-user-table.js +36 -36
  47. package/migrations/20250210115636-create-user-reporting-hierarchy.js +76 -76
  48. package/migrations/20250326043818-crate-user-password-history.js +42 -42
  49. package/migrations/20250610070720-added-MFBypassYN-to-sso-user.js +30 -30
  50. package/package.json +87 -87
  51. package/sampledotenv +7 -7
  52. package/tsconfig.build.json +5 -5
  53. package/tsconfig.json +23 -23
  54. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.d.ts +0 -1
  55. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js +0 -71
  56. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js.map +0 -1
  57. package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +0 -0
  58. package/dist/__tests__/unit/components/login-user/login-user.spec.js +0 -6
  59. package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +0 -1
  60. package/migrations/20250805085707-add-bulk-approval-code-to-sso-user.js +0 -29
@@ -1,69 +1,69 @@
1
- import { GroupPrivilege } from '../../../../src/components/group-privilege/group-privilege';
2
- import { GroupPrivilegeRepository } from '../../../../src/components/group-privilege/group-privilege.repository';
3
- import { ClassError } from '@tomei/general';
4
-
5
- describe('GroupPrivilege', () => {
6
- afterEach(() => {
7
- jest.restoreAllMocks();
8
- });
9
-
10
- it('should initialize with GroupPrivilegeAttr', async () => {
11
- const mockGroupPrivilegeAttr = {
12
- GroupPrivilegeId: 1,
13
- GroupCode: 'group1',
14
- SystemPrivilegeId: 'privilege1',
15
- Status: 'active',
16
- CreatedAt: new Date(),
17
- UpdatedAt: new Date(),
18
- CreatedById: 1,
19
- UpdatedById: 1,
20
- };
21
-
22
- const findOneMock = jest
23
- .spyOn(GroupPrivilegeRepository.prototype, 'findOne')
24
- .mockResolvedValueOnce({ get: jest.fn().mockReturnValue(mockGroupPrivilegeAttr) } as any);
25
-
26
- const groupPrivilege = await GroupPrivilege.init(null, 1);
27
-
28
- expect(findOneMock).toHaveBeenCalledWith({
29
- where: { GroupPrivilegeId: 1 },
30
- transaction: null,
31
- });
32
- expect(groupPrivilege).toBeInstanceOf(GroupPrivilege);
33
- expect(groupPrivilege.GroupPrivilegeId).toEqual(mockGroupPrivilegeAttr.GroupPrivilegeId);
34
- expect(groupPrivilege.GroupCode).toEqual(mockGroupPrivilegeAttr.GroupCode);
35
- expect(groupPrivilege.SystemPrivilegeId).toEqual(mockGroupPrivilegeAttr.SystemPrivilegeId);
36
- expect(groupPrivilege.Status).toEqual(mockGroupPrivilegeAttr.Status);
37
- expect(groupPrivilege.CreatedAt).toEqual(mockGroupPrivilegeAttr.CreatedAt);
38
- expect(groupPrivilege.UpdatedAt).toEqual(mockGroupPrivilegeAttr.UpdatedAt);
39
- expect(groupPrivilege.CreatedById).toEqual(mockGroupPrivilegeAttr.CreatedById);
40
- expect(groupPrivilege.UpdatedById).toEqual(mockGroupPrivilegeAttr.UpdatedById);
41
- });
42
-
43
- it('should throw ClassError when GroupPrivilegeAttr is not found', async () => {
44
- const findOneMock = jest
45
- .spyOn(GroupPrivilegeRepository.prototype, 'findOne')
46
- .mockResolvedValueOnce(null);
47
-
48
- await expect(GroupPrivilege.init(null, 1)).rejects.toThrow(ClassError);
49
-
50
- expect(findOneMock).toHaveBeenCalledWith({
51
- where: { GroupPrivilegeId: 1 },
52
- transaction: null,
53
- });
54
- });
55
-
56
- it('should initialize with default values', async () => {
57
- const groupPrivilege = await GroupPrivilege.init();
58
-
59
- expect(groupPrivilege).toBeInstanceOf(GroupPrivilege);
60
- expect(groupPrivilege.GroupPrivilegeId).toBeUndefined();
61
- expect(groupPrivilege.GroupCode).toBeUndefined();
62
- expect(groupPrivilege.SystemPrivilegeId).toBeUndefined();
63
- expect(groupPrivilege.Status).toBeUndefined();
64
- expect(groupPrivilege.CreatedAt).toBeUndefined();
65
- expect(groupPrivilege.UpdatedAt).toBeUndefined();
66
- expect(groupPrivilege.CreatedById).toBeUndefined();
67
- expect(groupPrivilege.UpdatedById).toBeUndefined();
68
- });
1
+ import { GroupPrivilege } from '../../../../src/components/group-privilege/group-privilege';
2
+ import { GroupPrivilegeRepository } from '../../../../src/components/group-privilege/group-privilege.repository';
3
+ import { ClassError } from '@tomei/general';
4
+
5
+ describe('GroupPrivilege', () => {
6
+ afterEach(() => {
7
+ jest.restoreAllMocks();
8
+ });
9
+
10
+ it('should initialize with GroupPrivilegeAttr', async () => {
11
+ const mockGroupPrivilegeAttr = {
12
+ GroupPrivilegeId: 1,
13
+ GroupCode: 'group1',
14
+ SystemPrivilegeId: 'privilege1',
15
+ Status: 'active',
16
+ CreatedAt: new Date(),
17
+ UpdatedAt: new Date(),
18
+ CreatedById: 1,
19
+ UpdatedById: 1,
20
+ };
21
+
22
+ const findOneMock = jest
23
+ .spyOn(GroupPrivilegeRepository.prototype, 'findOne')
24
+ .mockResolvedValueOnce({ get: jest.fn().mockReturnValue(mockGroupPrivilegeAttr) } as any);
25
+
26
+ const groupPrivilege = await GroupPrivilege.init(null, 1);
27
+
28
+ expect(findOneMock).toHaveBeenCalledWith({
29
+ where: { GroupPrivilegeId: 1 },
30
+ transaction: null,
31
+ });
32
+ expect(groupPrivilege).toBeInstanceOf(GroupPrivilege);
33
+ expect(groupPrivilege.GroupPrivilegeId).toEqual(mockGroupPrivilegeAttr.GroupPrivilegeId);
34
+ expect(groupPrivilege.GroupCode).toEqual(mockGroupPrivilegeAttr.GroupCode);
35
+ expect(groupPrivilege.SystemPrivilegeId).toEqual(mockGroupPrivilegeAttr.SystemPrivilegeId);
36
+ expect(groupPrivilege.Status).toEqual(mockGroupPrivilegeAttr.Status);
37
+ expect(groupPrivilege.CreatedAt).toEqual(mockGroupPrivilegeAttr.CreatedAt);
38
+ expect(groupPrivilege.UpdatedAt).toEqual(mockGroupPrivilegeAttr.UpdatedAt);
39
+ expect(groupPrivilege.CreatedById).toEqual(mockGroupPrivilegeAttr.CreatedById);
40
+ expect(groupPrivilege.UpdatedById).toEqual(mockGroupPrivilegeAttr.UpdatedById);
41
+ });
42
+
43
+ it('should throw ClassError when GroupPrivilegeAttr is not found', async () => {
44
+ const findOneMock = jest
45
+ .spyOn(GroupPrivilegeRepository.prototype, 'findOne')
46
+ .mockResolvedValueOnce(null);
47
+
48
+ await expect(GroupPrivilege.init(null, 1)).rejects.toThrow(ClassError);
49
+
50
+ expect(findOneMock).toHaveBeenCalledWith({
51
+ where: { GroupPrivilegeId: 1 },
52
+ transaction: null,
53
+ });
54
+ });
55
+
56
+ it('should initialize with default values', async () => {
57
+ const groupPrivilege = await GroupPrivilege.init();
58
+
59
+ expect(groupPrivilege).toBeInstanceOf(GroupPrivilege);
60
+ expect(groupPrivilege.GroupPrivilegeId).toBeUndefined();
61
+ expect(groupPrivilege.GroupCode).toBeUndefined();
62
+ expect(groupPrivilege.SystemPrivilegeId).toBeUndefined();
63
+ expect(groupPrivilege.Status).toBeUndefined();
64
+ expect(groupPrivilege.CreatedAt).toBeUndefined();
65
+ expect(groupPrivilege.UpdatedAt).toBeUndefined();
66
+ expect(groupPrivilege.CreatedById).toBeUndefined();
67
+ expect(groupPrivilege.UpdatedById).toBeUndefined();
68
+ });
69
69
  });
@@ -1,67 +1,67 @@
1
- import { GroupReportingUser } from '../../../../src/components/group-reporting-user/group-reporting-user';
2
- import { GroupReportingUserRepository } from '../../../../src/components/group-reporting-user/group-reporting-user.repository';
3
- import { ClassError } from '@tomei/general';
4
-
5
- describe('GroupReportingUser', () => {
6
- const mockGroupReportingUserAttr = {
7
- GroupReportingUserId: 1,
8
- GroupCode: 'test',
9
- UserId: 1,
10
- Rank: 1,
11
- Status: 'active',
12
- CreatedById: 1,
13
- CreatedAt: new Date(),
14
- UpdatedById: 1,
15
- UpdatedAt: new Date(),
16
- };
17
-
18
- beforeEach(async () => {
19
- jest.clearAllMocks();
20
- });
21
-
22
-
23
- describe('init', () => {
24
- const mockDbTransaction = {};
25
-
26
- it('should initialize GroupReportingUser without GroupReportingUserId', async () => {
27
- const initGroupReportingUser = await GroupReportingUser.init(mockDbTransaction);
28
- expect(initGroupReportingUser).toBeDefined();
29
- expect(initGroupReportingUser).toBeInstanceOf(GroupReportingUser);
30
- });
31
-
32
- it('should initialize GroupReportingUser with valid GroupReportingUserId', async () => {
33
- const mockFindByPk = jest
34
- .spyOn(GroupReportingUserRepository.prototype, 'findByPk')
35
- .mockResolvedValue({
36
- ...mockGroupReportingUserAttr,
37
- get: () => mockGroupReportingUserAttr,
38
- } as any);
39
-
40
- const initGroupReportingUser = await GroupReportingUser.init(
41
- mockDbTransaction,
42
- '1'
43
- );
44
- expect(initGroupReportingUser).toBeDefined();
45
- expect(initGroupReportingUser).toBeInstanceOf(GroupReportingUser);
46
- expect(mockFindByPk).toHaveBeenCalledWith('1', {
47
- transaction: mockDbTransaction,
48
- });
49
- });
50
-
51
- it('should throw ClassError when GroupReportingUser is not found', async () => {
52
- jest.spyOn(GroupReportingUserRepository.prototype, 'findByPk').mockResolvedValue(null);
53
-
54
- await expect(
55
- GroupReportingUser.init(mockDbTransaction, '1')
56
- ).rejects.toThrow(ClassError);
57
- });
58
-
59
- it('should throw ClassError when failed to initialize GroupReportingUser', async () => {
60
- jest.spyOn(GroupReportingUserRepository.prototype, 'findByPk').mockRejectedValue(new Error());
61
-
62
- await expect(
63
- GroupReportingUser.init(mockDbTransaction, '1')
64
- ).rejects.toThrow(ClassError);
65
- });
66
- });
1
+ import { GroupReportingUser } from '../../../../src/components/group-reporting-user/group-reporting-user';
2
+ import { GroupReportingUserRepository } from '../../../../src/components/group-reporting-user/group-reporting-user.repository';
3
+ import { ClassError } from '@tomei/general';
4
+
5
+ describe('GroupReportingUser', () => {
6
+ const mockGroupReportingUserAttr = {
7
+ GroupReportingUserId: 1,
8
+ GroupCode: 'test',
9
+ UserId: 1,
10
+ Rank: 1,
11
+ Status: 'active',
12
+ CreatedById: 1,
13
+ CreatedAt: new Date(),
14
+ UpdatedById: 1,
15
+ UpdatedAt: new Date(),
16
+ };
17
+
18
+ beforeEach(async () => {
19
+ jest.clearAllMocks();
20
+ });
21
+
22
+
23
+ describe('init', () => {
24
+ const mockDbTransaction = {};
25
+
26
+ it('should initialize GroupReportingUser without GroupReportingUserId', async () => {
27
+ const initGroupReportingUser = await GroupReportingUser.init(mockDbTransaction);
28
+ expect(initGroupReportingUser).toBeDefined();
29
+ expect(initGroupReportingUser).toBeInstanceOf(GroupReportingUser);
30
+ });
31
+
32
+ it('should initialize GroupReportingUser with valid GroupReportingUserId', async () => {
33
+ const mockFindByPk = jest
34
+ .spyOn(GroupReportingUserRepository.prototype, 'findByPk')
35
+ .mockResolvedValue({
36
+ ...mockGroupReportingUserAttr,
37
+ get: () => mockGroupReportingUserAttr,
38
+ } as any);
39
+
40
+ const initGroupReportingUser = await GroupReportingUser.init(
41
+ mockDbTransaction,
42
+ '1'
43
+ );
44
+ expect(initGroupReportingUser).toBeDefined();
45
+ expect(initGroupReportingUser).toBeInstanceOf(GroupReportingUser);
46
+ expect(mockFindByPk).toHaveBeenCalledWith('1', {
47
+ transaction: mockDbTransaction,
48
+ });
49
+ });
50
+
51
+ it('should throw ClassError when GroupReportingUser is not found', async () => {
52
+ jest.spyOn(GroupReportingUserRepository.prototype, 'findByPk').mockResolvedValue(null);
53
+
54
+ await expect(
55
+ GroupReportingUser.init(mockDbTransaction, '1')
56
+ ).rejects.toThrow(ClassError);
57
+ });
58
+
59
+ it('should throw ClassError when failed to initialize GroupReportingUser', async () => {
60
+ jest.spyOn(GroupReportingUserRepository.prototype, 'findByPk').mockRejectedValue(new Error());
61
+
62
+ await expect(
63
+ GroupReportingUser.init(mockDbTransaction, '1')
64
+ ).rejects.toThrow(ClassError);
65
+ });
66
+ });
67
67
  });
@@ -1,84 +1,84 @@
1
- import { GroupSystemAccess } from '../../../../src/components/group-system-access/group-system-access';
2
- import { GroupSystemAccessRepository } from '../../../../src/components/group-system-access/group-system-access.repository';
3
- import { ClassError } from '@tomei/general';
4
-
5
- describe('GroupSystemAccess', () => {
6
- let groupSystemAccess: GroupSystemAccess;
7
- const groupSystemAccessAttr = {
8
- GroupSystemAccessId: 1,
9
- GroupCode: 'test',
10
- SystemCode: 'test',
11
- Status: 'test',
12
- CreatedById: 1,
13
- CreatedAt: new Date(),
14
- UpdatedById: 1,
15
- UpdatedAt: new Date(),
16
- };
17
-
18
- beforeEach(() => {
19
- jest.resetAllMocks();
20
- groupSystemAccess = new GroupSystemAccess(groupSystemAccessAttr);
21
- });
22
-
23
- it('should create a new GroupSystemAccess instance', () => {
24
- expect(groupSystemAccess).toBeDefined();
25
- expect(groupSystemAccess).toBeInstanceOf(GroupSystemAccess);
26
- expect(groupSystemAccess.GroupSystemAccessId).toBe(groupSystemAccessAttr.GroupSystemAccessId);
27
- expect(groupSystemAccess.GroupCode).toBe(groupSystemAccessAttr.GroupCode);
28
- expect(groupSystemAccess.SystemCode).toBe(groupSystemAccessAttr.SystemCode);
29
- expect(groupSystemAccess.Status).toBe(groupSystemAccessAttr.Status);
30
- expect(groupSystemAccess.CreatedById).toBe(groupSystemAccessAttr.CreatedById);
31
- expect(groupSystemAccess.CreatedAt).toBe(groupSystemAccessAttr.CreatedAt);
32
- expect(groupSystemAccess.UpdatedById).toBe(groupSystemAccessAttr.UpdatedById);
33
- expect(groupSystemAccess.UpdatedAt).toBe(groupSystemAccessAttr.UpdatedAt);
34
- });
35
-
36
- describe('init', () => {
37
- it('should initialize GroupSystemAccess without GroupSystemAccessId', async () => {
38
- const groupSystemAccess = await GroupSystemAccess.init(null);
39
- expect(groupSystemAccess).toBeDefined();
40
- expect(groupSystemAccess).toBeInstanceOf(GroupSystemAccess);
41
- expect(groupSystemAccess.GroupSystemAccessId).toBeUndefined();
42
- expect(groupSystemAccess.GroupCode).toBeUndefined();
43
- expect(groupSystemAccess.SystemCode).toBeUndefined();
44
- expect(groupSystemAccess.Status).toBeUndefined();
45
- expect(groupSystemAccess.CreatedById).toBeUndefined();
46
- expect(groupSystemAccess.CreatedAt).toBeUndefined();
47
- expect(groupSystemAccess.UpdatedById).toBeUndefined();
48
- expect(groupSystemAccess.UpdatedAt).toBeUndefined();
49
- });
50
-
51
- it('should initialize GroupSystemAccess with GroupSystemAccessId', async () => {
52
- const findOneSpy = jest
53
- .spyOn(GroupSystemAccessRepository.prototype, 'findOne')
54
- .mockResolvedValue({
55
- ...groupSystemAccessAttr,
56
- get: () => groupSystemAccessAttr,
57
- } as any);
58
-
59
- const groupSystemAccess = await GroupSystemAccess.init(null, 1);
60
- expect(findOneSpy).toHaveBeenCalledWith({
61
- where: { GroupSystemAccessId: 1 },
62
- transaction: null,
63
- });
64
- expect(groupSystemAccess).toBeDefined();
65
- expect(groupSystemAccess).toBeInstanceOf(GroupSystemAccess);
66
- expect(groupSystemAccess.GroupSystemAccessId).toBe(groupSystemAccessAttr.GroupSystemAccessId);
67
- expect(groupSystemAccess.GroupCode).toBe(groupSystemAccessAttr.GroupCode);
68
- expect(groupSystemAccess.SystemCode).toBe(groupSystemAccessAttr.SystemCode);
69
- expect(groupSystemAccess.Status).toBe(groupSystemAccessAttr.Status);
70
- expect(groupSystemAccess.CreatedById).toBe(groupSystemAccessAttr.CreatedById);
71
- expect(groupSystemAccess.CreatedAt).toBe(groupSystemAccessAttr.CreatedAt);
72
- expect(groupSystemAccess.UpdatedById).toBe(groupSystemAccessAttr.UpdatedById);
73
- expect(groupSystemAccess.UpdatedAt).toBe(groupSystemAccessAttr.UpdatedAt);
74
- });
75
-
76
- it('should throw an error if GroupSystemAccessId is not found', async () => {
77
- jest.spyOn(GroupSystemAccessRepository.prototype, 'findOne').mockResolvedValue(null);
78
-
79
- await expect(GroupSystemAccess.init(null, 1)).rejects.toThrow(
80
- new ClassError('groupSystemAccess', 'groupSystemAccessErrMsg00', 'groupSystemAccess not found'),
81
- );
82
- });
83
- });
1
+ import { GroupSystemAccess } from '../../../../src/components/group-system-access/group-system-access';
2
+ import { GroupSystemAccessRepository } from '../../../../src/components/group-system-access/group-system-access.repository';
3
+ import { ClassError } from '@tomei/general';
4
+
5
+ describe('GroupSystemAccess', () => {
6
+ let groupSystemAccess: GroupSystemAccess;
7
+ const groupSystemAccessAttr = {
8
+ GroupSystemAccessId: 1,
9
+ GroupCode: 'test',
10
+ SystemCode: 'test',
11
+ Status: 'test',
12
+ CreatedById: 1,
13
+ CreatedAt: new Date(),
14
+ UpdatedById: 1,
15
+ UpdatedAt: new Date(),
16
+ };
17
+
18
+ beforeEach(() => {
19
+ jest.resetAllMocks();
20
+ groupSystemAccess = new GroupSystemAccess(groupSystemAccessAttr);
21
+ });
22
+
23
+ it('should create a new GroupSystemAccess instance', () => {
24
+ expect(groupSystemAccess).toBeDefined();
25
+ expect(groupSystemAccess).toBeInstanceOf(GroupSystemAccess);
26
+ expect(groupSystemAccess.GroupSystemAccessId).toBe(groupSystemAccessAttr.GroupSystemAccessId);
27
+ expect(groupSystemAccess.GroupCode).toBe(groupSystemAccessAttr.GroupCode);
28
+ expect(groupSystemAccess.SystemCode).toBe(groupSystemAccessAttr.SystemCode);
29
+ expect(groupSystemAccess.Status).toBe(groupSystemAccessAttr.Status);
30
+ expect(groupSystemAccess.CreatedById).toBe(groupSystemAccessAttr.CreatedById);
31
+ expect(groupSystemAccess.CreatedAt).toBe(groupSystemAccessAttr.CreatedAt);
32
+ expect(groupSystemAccess.UpdatedById).toBe(groupSystemAccessAttr.UpdatedById);
33
+ expect(groupSystemAccess.UpdatedAt).toBe(groupSystemAccessAttr.UpdatedAt);
34
+ });
35
+
36
+ describe('init', () => {
37
+ it('should initialize GroupSystemAccess without GroupSystemAccessId', async () => {
38
+ const groupSystemAccess = await GroupSystemAccess.init(null);
39
+ expect(groupSystemAccess).toBeDefined();
40
+ expect(groupSystemAccess).toBeInstanceOf(GroupSystemAccess);
41
+ expect(groupSystemAccess.GroupSystemAccessId).toBeUndefined();
42
+ expect(groupSystemAccess.GroupCode).toBeUndefined();
43
+ expect(groupSystemAccess.SystemCode).toBeUndefined();
44
+ expect(groupSystemAccess.Status).toBeUndefined();
45
+ expect(groupSystemAccess.CreatedById).toBeUndefined();
46
+ expect(groupSystemAccess.CreatedAt).toBeUndefined();
47
+ expect(groupSystemAccess.UpdatedById).toBeUndefined();
48
+ expect(groupSystemAccess.UpdatedAt).toBeUndefined();
49
+ });
50
+
51
+ it('should initialize GroupSystemAccess with GroupSystemAccessId', async () => {
52
+ const findOneSpy = jest
53
+ .spyOn(GroupSystemAccessRepository.prototype, 'findOne')
54
+ .mockResolvedValue({
55
+ ...groupSystemAccessAttr,
56
+ get: () => groupSystemAccessAttr,
57
+ } as any);
58
+
59
+ const groupSystemAccess = await GroupSystemAccess.init(null, 1);
60
+ expect(findOneSpy).toHaveBeenCalledWith({
61
+ where: { GroupSystemAccessId: 1 },
62
+ transaction: null,
63
+ });
64
+ expect(groupSystemAccess).toBeDefined();
65
+ expect(groupSystemAccess).toBeInstanceOf(GroupSystemAccess);
66
+ expect(groupSystemAccess.GroupSystemAccessId).toBe(groupSystemAccessAttr.GroupSystemAccessId);
67
+ expect(groupSystemAccess.GroupCode).toBe(groupSystemAccessAttr.GroupCode);
68
+ expect(groupSystemAccess.SystemCode).toBe(groupSystemAccessAttr.SystemCode);
69
+ expect(groupSystemAccess.Status).toBe(groupSystemAccessAttr.Status);
70
+ expect(groupSystemAccess.CreatedById).toBe(groupSystemAccessAttr.CreatedById);
71
+ expect(groupSystemAccess.CreatedAt).toBe(groupSystemAccessAttr.CreatedAt);
72
+ expect(groupSystemAccess.UpdatedById).toBe(groupSystemAccessAttr.UpdatedById);
73
+ expect(groupSystemAccess.UpdatedAt).toBe(groupSystemAccessAttr.UpdatedAt);
74
+ });
75
+
76
+ it('should throw an error if GroupSystemAccessId is not found', async () => {
77
+ jest.spyOn(GroupSystemAccessRepository.prototype, 'findOne').mockResolvedValue(null);
78
+
79
+ await expect(GroupSystemAccess.init(null, 1)).rejects.toThrow(
80
+ new ClassError('groupSystemAccess', 'groupSystemAccessErrMsg00', 'groupSystemAccess not found'),
81
+ );
82
+ });
83
+ });
84
84
  });