@tomei/sso 0.64.1 → 0.65.1-test.1

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 (147) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.gitlab-ci.yml +237 -16
  3. package/.husky/commit-msg +15 -15
  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/api-key/api-key.spec.ts +201 -0
  9. package/__tests__/unit/components/group/group.spec.ts +85 -79
  10. package/__tests__/unit/components/group-object-privilege/group-object-privilege.spec.ts +88 -88
  11. package/__tests__/unit/components/group-privilege/group-privilege.spec.ts +68 -68
  12. package/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.ts +74 -66
  13. package/__tests__/unit/components/group-system-access/group-system-access.spec.ts +83 -83
  14. package/__tests__/unit/components/login-user/l.spec.ts +746 -746
  15. package/__tests__/unit/components/login-user/login.spec.ts +2358 -1164
  16. package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +31 -31
  17. package/__tests__/unit/components/system/system.spec.ts +255 -254
  18. package/__tests__/unit/components/system-privilege/system-privilege.spec.ts +83 -83
  19. package/__tests__/unit/components/user-group/user-group.spec.ts +86 -86
  20. package/__tests__/unit/components/user-object-privilege/user-object-privilege.spec.ts +78 -78
  21. package/__tests__/unit/components/user-password-history/user-password-history.spec.ts +165 -0
  22. package/__tests__/unit/components/user-privilege/user-privilege.spec.ts +72 -72
  23. package/__tests__/unit/components/user-reporting-hierarchy/user-reporting-hierarchy.spec.ts +233 -0
  24. package/__tests__/unit/components/user-system-access/user-system-access.spec.ts +89 -89
  25. package/__tests__/unit/redis-client/redis.service.spec.ts +23 -23
  26. package/__tests__/unit/session/session.service.spec.ts +47 -47
  27. package/__tests__/unit/system-privilege/system-privilage.spec.ts +91 -91
  28. package/coverage/cobertura-coverage.xml +6837 -0
  29. package/coverage/test-report.xml +130 -40
  30. package/create-sso-user.sql +39 -39
  31. package/dist/__tests__/unit/components/{group-privilege/group-privilege.test.d.ts → api-key/api-key.spec.d.ts} +1 -1
  32. package/dist/__tests__/unit/components/api-key/api-key.spec.js +158 -0
  33. package/dist/__tests__/unit/components/api-key/api-key.spec.js.map +1 -0
  34. package/dist/__tests__/unit/components/group/group.spec.js +4 -0
  35. package/dist/__tests__/unit/components/group/group.spec.js.map +1 -1
  36. package/dist/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.js +9 -1
  37. package/dist/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.js.map +1 -1
  38. package/dist/__tests__/unit/components/login-user/login.spec.js +703 -0
  39. package/dist/__tests__/unit/components/login-user/login.spec.js.map +1 -1
  40. package/dist/__tests__/unit/components/system/system.spec.js +1 -0
  41. package/dist/__tests__/unit/components/system/system.spec.js.map +1 -1
  42. package/dist/__tests__/unit/components/user-password-history/user-password-history.spec.d.ts +1 -0
  43. package/dist/__tests__/unit/components/user-password-history/user-password-history.spec.js +138 -0
  44. package/dist/__tests__/unit/components/user-password-history/user-password-history.spec.js.map +1 -0
  45. package/dist/__tests__/unit/components/user-reporting-hierarchy/user-reporting-hierarchy.spec.d.ts +1 -0
  46. package/dist/__tests__/unit/components/user-reporting-hierarchy/user-reporting-hierarchy.spec.js +182 -0
  47. package/dist/__tests__/unit/components/user-reporting-hierarchy/user-reporting-hierarchy.spec.js.map +1 -0
  48. package/dist/src/components/login-user/user.js +1 -1
  49. package/dist/src/components/login-user/user.js.map +1 -1
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/eslint.config.mjs +58 -58
  52. package/jest.config.js +16 -14
  53. package/migrations/20240314080602-create-user-table.js +124 -124
  54. package/migrations/20240314080603-create-user-group-table.js +85 -85
  55. package/migrations/20240314080604-create-user-user-group-table.js +55 -55
  56. package/migrations/20240314080605-create-login-history-table.js +53 -53
  57. package/migrations/20240527064925-create-system-table.js +78 -78
  58. package/migrations/20240527064926-create-system-privilege-table.js +71 -71
  59. package/migrations/20240527065342-create-group-table.js +93 -93
  60. package/migrations/20240527065633-create-group-reporting-user-table.js +76 -76
  61. package/migrations/20240528011551-create-group-system-access-table.js +72 -72
  62. package/migrations/20240528023018-user-system-access-table.js +75 -75
  63. package/migrations/20240528032229-user-privilege-table.js +76 -76
  64. package/migrations/20240528063003-create-group-privilege-table.js +76 -76
  65. package/migrations/20240528063051-create-group-object-privilege-table.js +84 -84
  66. package/migrations/20240528063107-create-user-object-privilege-table.js +84 -84
  67. package/migrations/20240528063108-create-api-key-table.js +85 -85
  68. package/migrations/20241104104802-create-building-table.js +95 -95
  69. package/migrations/20250108091132-add-area-manager-user-id-to-building-table.js +14 -14
  70. package/migrations/20250108091133-add-passcode-to-user-table.js +36 -36
  71. package/migrations/20250210115636-create-user-reporting-hierarchy.js +76 -76
  72. package/migrations/20250326043818-crate-user-password-history.js +42 -42
  73. package/migrations/20250610070720-added-MFBypassYN-to-sso-user.js +30 -30
  74. package/migrations/20250805085707-add-bulk-approval-code-to-sso-user.js +29 -0
  75. package/package.json +87 -87
  76. package/sampledotenv +7 -7
  77. package/src/components/login-user/user.ts +1 -1
  78. package/tsconfig.build.json +5 -5
  79. package/tsconfig.json +23 -23
  80. package/coverage/clover.xml +0 -1380
  81. package/coverage/coverage-final.json +0 -39
  82. package/coverage/lcov-report/base.css +0 -224
  83. package/coverage/lcov-report/block-navigation.js +0 -87
  84. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.repository.ts.html +0 -160
  85. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.ts.html +0 -919
  86. package/coverage/lcov-report/components/group-object-privilege/index.html +0 -131
  87. package/coverage/lcov-report/components/group-privilege/group-privilege.repository.ts.html +0 -172
  88. package/coverage/lcov-report/components/group-privilege/group-privilege.ts.html +0 -337
  89. package/coverage/lcov-report/components/group-privilege/index.html +0 -131
  90. package/coverage/lcov-report/components/group-system-access/group-system-access.repository.ts.html +0 -214
  91. package/coverage/lcov-report/components/group-system-access/group-system-access.ts.html +0 -355
  92. package/coverage/lcov-report/components/group-system-access/index.html +0 -131
  93. package/coverage/lcov-report/components/password-hash/index.html +0 -116
  94. package/coverage/lcov-report/components/password-hash/password-hash.service.ts.html +0 -127
  95. package/coverage/lcov-report/components/system-privilege/index.html +0 -116
  96. package/coverage/lcov-report/components/system-privilege/system-privilege.repository.ts.html +0 -139
  97. package/coverage/lcov-report/components/user-group/index.html +0 -131
  98. package/coverage/lcov-report/components/user-group/user-group.repository.ts.html +0 -142
  99. package/coverage/lcov-report/components/user-group/user-group.ts.html +0 -2377
  100. package/coverage/lcov-report/components/user-object-privilege/index.html +0 -131
  101. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.repository.ts.html +0 -118
  102. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.ts.html +0 -322
  103. package/coverage/lcov-report/components/user-privilege/index.html +0 -131
  104. package/coverage/lcov-report/components/user-privilege/user-privilege.repository.ts.html +0 -160
  105. package/coverage/lcov-report/components/user-privilege/user-privilege.ts.html +0 -2071
  106. package/coverage/lcov-report/components/user-system-access/index.html +0 -131
  107. package/coverage/lcov-report/components/user-system-access/user-system-access.repository.ts.html +0 -208
  108. package/coverage/lcov-report/components/user-system-access/user-system-access.ts.html +0 -2236
  109. package/coverage/lcov-report/enum/api-key.enum.ts.html +0 -100
  110. package/coverage/lcov-report/enum/group-type.enum.ts.html +0 -109
  111. package/coverage/lcov-report/enum/index.html +0 -206
  112. package/coverage/lcov-report/enum/index.ts.html +0 -103
  113. package/coverage/lcov-report/enum/login-status.enum.ts.html +0 -97
  114. package/coverage/lcov-report/enum/object-status.enum.ts.html +0 -97
  115. package/coverage/lcov-report/enum/user-status.enum.ts.html +0 -106
  116. package/coverage/lcov-report/enum/yn.enum.ts.html +0 -97
  117. package/coverage/lcov-report/favicon.png +0 -0
  118. package/coverage/lcov-report/index.html +0 -296
  119. package/coverage/lcov-report/models/group-object-privilege.entity.ts.html +0 -358
  120. package/coverage/lcov-report/models/group-privilege.entity.ts.html +0 -319
  121. package/coverage/lcov-report/models/group-reporting-user.entity.ts.html +0 -370
  122. package/coverage/lcov-report/models/group-system-access.entity.ts.html +0 -328
  123. package/coverage/lcov-report/models/group.entity.ts.html +0 -466
  124. package/coverage/lcov-report/models/index.html +0 -296
  125. package/coverage/lcov-report/models/staff.entity.ts.html +0 -358
  126. package/coverage/lcov-report/models/system-privilege.entity.ts.html +0 -355
  127. package/coverage/lcov-report/models/system.entity.ts.html +0 -424
  128. package/coverage/lcov-report/models/user-group.entity.ts.html +0 -358
  129. package/coverage/lcov-report/models/user-object-privilege.entity.ts.html +0 -355
  130. package/coverage/lcov-report/models/user-privilege.entity.ts.html +0 -319
  131. package/coverage/lcov-report/models/user-system-access.entity.ts.html +0 -346
  132. package/coverage/lcov-report/models/user.entity.ts.html +0 -685
  133. package/coverage/lcov-report/prettify.css +0 -1
  134. package/coverage/lcov-report/prettify.js +0 -2
  135. package/coverage/lcov-report/redis-client/index.html +0 -116
  136. package/coverage/lcov-report/redis-client/redis.service.ts.html +0 -310
  137. package/coverage/lcov-report/session/index.html +0 -116
  138. package/coverage/lcov-report/session/session.service.ts.html +0 -373
  139. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  140. package/coverage/lcov-report/sorter.js +0 -210
  141. package/coverage/lcov.info +0 -2223
  142. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js +0 -71
  143. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js.map +0 -1
  144. package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +0 -0
  145. package/dist/__tests__/unit/components/login-user/login-user.spec.js +0 -6
  146. package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +0 -1
  147. package/sonar-project.properties +0 -23
@@ -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,75 @@
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
+ // Break circular dependency: group-reporting-user → user → login-user → user
2
+ jest.mock('../../../../src/components/login-user/login-user', () => ({
3
+ LoginUser: class MockLoginUser {},
4
+ }));
5
+ jest.mock('../../../../src/components/login-user/user', () => ({
6
+ User: class MockUser {},
7
+ }));
8
+
9
+ import { GroupReportingUser } from '../../../../src/components/group-reporting-user/group-reporting-user';
10
+ import { GroupReportingUserRepository } from '../../../../src/components/group-reporting-user/group-reporting-user.repository';
11
+ import { ClassError } from '@tomei/general';
12
+
13
+ describe('GroupReportingUser', () => {
14
+ const mockGroupReportingUserAttr = {
15
+ GroupReportingUserId: 1,
16
+ GroupCode: 'test',
17
+ UserId: 1,
18
+ Rank: 1,
19
+ Status: 'active',
20
+ CreatedById: 1,
21
+ CreatedAt: new Date(),
22
+ UpdatedById: 1,
23
+ UpdatedAt: new Date(),
24
+ };
25
+
26
+ beforeEach(async () => {
27
+ jest.clearAllMocks();
28
+ });
29
+
30
+
31
+ describe('init', () => {
32
+ const mockDbTransaction = {};
33
+
34
+ it('should initialize GroupReportingUser without GroupReportingUserId', async () => {
35
+ const initGroupReportingUser = await GroupReportingUser.init(mockDbTransaction);
36
+ expect(initGroupReportingUser).toBeDefined();
37
+ expect(initGroupReportingUser).toBeInstanceOf(GroupReportingUser);
38
+ });
39
+
40
+ it('should initialize GroupReportingUser with valid GroupReportingUserId', async () => {
41
+ const mockFindByPk = jest
42
+ .spyOn(GroupReportingUserRepository.prototype, 'findByPk')
43
+ .mockResolvedValue({
44
+ ...mockGroupReportingUserAttr,
45
+ get: () => mockGroupReportingUserAttr,
46
+ } as any);
47
+
48
+ const initGroupReportingUser = await GroupReportingUser.init(
49
+ mockDbTransaction,
50
+ '1'
51
+ );
52
+ expect(initGroupReportingUser).toBeDefined();
53
+ expect(initGroupReportingUser).toBeInstanceOf(GroupReportingUser);
54
+ expect(mockFindByPk).toHaveBeenCalledWith('1', {
55
+ transaction: mockDbTransaction,
56
+ });
57
+ });
58
+
59
+ it('should throw ClassError when GroupReportingUser is not found', async () => {
60
+ jest.spyOn(GroupReportingUserRepository.prototype, 'findByPk').mockResolvedValue(null);
61
+
62
+ await expect(
63
+ GroupReportingUser.init(mockDbTransaction, '1')
64
+ ).rejects.toThrow(ClassError);
65
+ });
66
+
67
+ it('should throw ClassError when failed to initialize GroupReportingUser', async () => {
68
+ jest.spyOn(GroupReportingUserRepository.prototype, 'findByPk').mockRejectedValue(new Error());
69
+
70
+ await expect(
71
+ GroupReportingUser.init(mockDbTransaction, '1')
72
+ ).rejects.toThrow(Error);
73
+ });
74
+ });
67
75
  });
@@ -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
  });