@tomei/sso 0.64.0-staging.2 → 0.64.0
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.
- package/.commitlintrc.json +22 -22
- package/.gitlab-ci.yml +16 -16
- package/.husky/commit-msg +15 -9
- package/.husky/pre-commit +7 -7
- package/.prettierrc +4 -4
- package/Jenkinsfile +57 -57
- package/README.md +23 -23
- package/__tests__/unit/components/group/group.spec.ts +79 -79
- package/__tests__/unit/components/group-object-privilege/group-object-privilege.spec.ts +88 -88
- package/__tests__/unit/components/group-privilege/group-privilege.spec.ts +68 -68
- package/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.ts +66 -66
- package/__tests__/unit/components/group-system-access/group-system-access.spec.ts +83 -83
- package/__tests__/unit/components/login-user/l.spec.ts +746 -746
- package/__tests__/unit/components/login-user/login.spec.ts +1164 -1164
- package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +31 -31
- package/__tests__/unit/components/system/system.spec.ts +254 -254
- package/__tests__/unit/components/system-privilege/system-privilege.spec.ts +83 -83
- package/__tests__/unit/components/user-group/user-group.spec.ts +86 -86
- package/__tests__/unit/components/user-object-privilege/user-object-privilege.spec.ts +78 -78
- package/__tests__/unit/components/user-privilege/user-privilege.spec.ts +72 -72
- package/__tests__/unit/components/user-system-access/user-system-access.spec.ts +89 -89
- package/__tests__/unit/redis-client/redis.service.spec.ts +23 -23
- package/__tests__/unit/session/session.service.spec.ts +47 -47
- package/__tests__/unit/system-privilege/system-privilage.spec.ts +91 -91
- package/create-sso-user.sql +39 -39
- package/dist/__tests__/unit/components/group-privilege/group-privilege.test.d.ts +1 -0
- package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js +71 -0
- package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js.map +1 -0
- package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +0 -0
- package/dist/__tests__/unit/components/login-user/login-user.spec.js +6 -0
- package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +1 -0
- package/dist/src/components/login-user/user.js +9 -3
- package/dist/src/components/login-user/user.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/eslint.config.mjs +58 -58
- package/jest.config.js +14 -14
- package/migrations/20240314080602-create-user-table.js +124 -124
- package/migrations/20240314080603-create-user-group-table.js +85 -85
- package/migrations/20240314080604-create-user-user-group-table.js +55 -55
- package/migrations/20240314080605-create-login-history-table.js +53 -53
- package/migrations/20240527064925-create-system-table.js +78 -78
- package/migrations/20240527064926-create-system-privilege-table.js +71 -71
- package/migrations/20240527065342-create-group-table.js +93 -93
- package/migrations/20240527065633-create-group-reporting-user-table.js +76 -76
- package/migrations/20240528011551-create-group-system-access-table.js +72 -72
- package/migrations/20240528023018-user-system-access-table.js +75 -75
- package/migrations/20240528032229-user-privilege-table.js +76 -76
- package/migrations/20240528063003-create-group-privilege-table.js +76 -76
- package/migrations/20240528063051-create-group-object-privilege-table.js +84 -84
- package/migrations/20240528063107-create-user-object-privilege-table.js +84 -84
- package/migrations/20240528063108-create-api-key-table.js +85 -85
- package/migrations/20241104104802-create-building-table.js +95 -95
- package/migrations/20250108091132-add-area-manager-user-id-to-building-table.js +14 -14
- package/migrations/20250108091133-add-passcode-to-user-table.js +36 -36
- package/migrations/20250210115636-create-user-reporting-hierarchy.js +76 -76
- package/migrations/20250326043818-crate-user-password-history.js +42 -42
- package/migrations/20250610070720-added-MFBypassYN-to-sso-user.js +30 -30
- package/package.json +87 -87
- package/sampledotenv +7 -7
- package/sonar-project.properties +23 -0
- package/src/components/login-user/user.ts +9 -3
- package/tsconfig.build.json +5 -5
- package/tsconfig.json +23 -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,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
|
});
|