@mbc-cqrs-serverless/master 0.1.66-beta.0 → 0.1.68-beta.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/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +2 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/interfaces/master-data.interface.d.ts +3 -0
- package/dist/interfaces/master-setting.interface.d.ts +4 -1
- package/dist/services/master-data.service.d.ts +14 -0
- package/dist/services/master-data.service.js +10 -0
- package/dist/services/master-data.service.js.map +1 -1
- package/dist/services/master-setting.service.d.ts +15 -1
- package/dist/services/master-setting.service.js +10 -0
- package/dist/services/master-setting.service.js.map +1 -1
- package/dist/services/master-setting.service.spec.d.ts +1 -0
- package/dist/services/master-setting.service.spec.js +662 -0
- package/dist/services/master-setting.service.spec.js.map +1 -0
- package/dist/update-scheme.js +262 -14
- package/dist/update-scheme.js.map +1 -1
- package/package.json +6 -4
- package/src/templates/custom-task/custom-task.module.ts +18 -0
- package/src/templates/custom-task/event/task-queue-event-factory.ts +26 -0
- package/src/templates/custom-task/my-task.controller.ts +28 -0
- package/src/templates/custom-task/my-task.service.ts +99 -0
- package/src/templates/master/dto/master-copy.dto.ts +73 -0
- package/src/templates/master/dto/master-data-create.dto.ts +20 -0
- package/src/templates/master/dto/master-data-search.dto.ts +20 -0
- package/src/templates/master/dto/master-data-update.dto.ts +25 -0
- package/src/templates/master/dto/master-rds-list.entity.ts +15 -0
- package/src/templates/master/dto/master-rds.entity.ts +77 -0
- package/src/templates/master/dto/master-setting-search.dto.ts +20 -0
- package/src/templates/master/dto/master-setting-update.dto.ts +11 -0
- package/src/templates/master/entity/master-command.entity.ts +11 -0
- package/src/templates/master/entity/master-data-list.entity.ts +13 -0
- package/src/templates/master/entity/master-data.entity.ts +11 -0
- package/src/templates/master/handler/master-rds.handler.ts +75 -0
- package/src/templates/master/handler/master-sfn-task.event.ts +3 -0
- package/src/templates/master/handler/master-sfn-task.handler.ts +334 -0
- package/src/templates/master/helpers/get-order.ts +19 -0
- package/src/templates/master/helpers/id.ts +42 -0
- package/src/templates/master/helpers/index.ts +3 -0
- package/src/templates/master/helpers/key.ts +11 -0
- package/src/templates/master/master-data.controller.ts +98 -0
- package/src/templates/master/master-data.service.ts +181 -0
- package/src/templates/master/master-setting.controller.ts +103 -0
- package/src/templates/master/master-setting.service.ts +201 -0
- package/src/templates/master/master.module.ts +36 -0
|
@@ -0,0 +1,662 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@mbc-cqrs-serverless/core");
|
|
4
|
+
const testing_1 = require("@nestjs/testing");
|
|
5
|
+
const entities_1 = require("../entities");
|
|
6
|
+
const enums_1 = require("../enums");
|
|
7
|
+
const master_setting_service_1 = require("./master-setting.service");
|
|
8
|
+
const constants_1 = require("../constants");
|
|
9
|
+
const optionsMock = {
|
|
10
|
+
invokeContext: {
|
|
11
|
+
event: {
|
|
12
|
+
requestContext: {
|
|
13
|
+
accountId: '1',
|
|
14
|
+
http: {
|
|
15
|
+
protocol: 'HTTP/1.1',
|
|
16
|
+
sourceIp: '127.0.0.1',
|
|
17
|
+
userAgent: 'PostmanRuntime/7.28.4',
|
|
18
|
+
},
|
|
19
|
+
requestId: '81bf1821-34b0-4dc5-a2ce-685d37d22f8c',
|
|
20
|
+
authorizer: {
|
|
21
|
+
jwt: {
|
|
22
|
+
claims: {
|
|
23
|
+
sub: 'abc',
|
|
24
|
+
'custom:roles': '[{"tenant":"MBC","role":"admin"}]',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
context: {
|
|
31
|
+
awsRequestId: '81bf1821-34b0-4dc5-a2ce-685d37d22f8c',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
describe('SettingService', () => {
|
|
36
|
+
let service;
|
|
37
|
+
let dataService;
|
|
38
|
+
let commandService;
|
|
39
|
+
let dynamoDbService;
|
|
40
|
+
beforeEach(async () => {
|
|
41
|
+
const module = await testing_1.Test.createTestingModule({
|
|
42
|
+
providers: [
|
|
43
|
+
master_setting_service_1.MasterSettingService,
|
|
44
|
+
{
|
|
45
|
+
provide: core_1.CommandService,
|
|
46
|
+
useValue: {
|
|
47
|
+
publishAsync: jest.fn(),
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
provide: core_1.DataService,
|
|
52
|
+
useValue: {
|
|
53
|
+
getItem: jest.fn(),
|
|
54
|
+
listItemsByPk: jest.fn(),
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
provide: core_1.DynamoDbService,
|
|
59
|
+
useValue: {
|
|
60
|
+
getItem: jest.fn(),
|
|
61
|
+
getTableName: jest.fn(),
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
}).compile();
|
|
66
|
+
service = module.get(master_setting_service_1.MasterSettingService);
|
|
67
|
+
dataService = module.get(core_1.DataService);
|
|
68
|
+
commandService = module.get(core_1.CommandService);
|
|
69
|
+
});
|
|
70
|
+
//
|
|
71
|
+
it('should be defined', () => {
|
|
72
|
+
expect(service).toBeDefined();
|
|
73
|
+
});
|
|
74
|
+
it('should return user-level setting if found', async () => {
|
|
75
|
+
jest.spyOn(service, 'getSetting').mockResolvedValueOnce({
|
|
76
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
77
|
+
settingValue: {},
|
|
78
|
+
});
|
|
79
|
+
const response = await service.getSetting({ code: 'UserListSetting' }, optionsMock);
|
|
80
|
+
expect(response).toEqual(new entities_1.MasterSettingEntity({
|
|
81
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
82
|
+
settingValue: {},
|
|
83
|
+
}));
|
|
84
|
+
});
|
|
85
|
+
it('should return group-level setting if found', async () => {
|
|
86
|
+
jest.spyOn(service, 'getSetting').mockResolvedValueOnce({
|
|
87
|
+
id: 'SETTING#MBC#GROUP#1#UserListSetting',
|
|
88
|
+
settingValue: {},
|
|
89
|
+
});
|
|
90
|
+
const response = await service.getSetting({ code: 'UserListSetting' }, optionsMock);
|
|
91
|
+
expect(response).toEqual(new entities_1.MasterSettingEntity({
|
|
92
|
+
id: 'SETTING#MBC#GROUP#1#UserListSetting',
|
|
93
|
+
settingValue: {},
|
|
94
|
+
}));
|
|
95
|
+
});
|
|
96
|
+
it('should return tenant-level setting if found', async () => {
|
|
97
|
+
jest.spyOn(service, 'getSetting').mockResolvedValueOnce({
|
|
98
|
+
id: 'SETTING#MBC#TENANT#TenantListSetting',
|
|
99
|
+
settingValue: {},
|
|
100
|
+
});
|
|
101
|
+
const response = await service.getSetting({ code: 'TenantListSetting' }, optionsMock);
|
|
102
|
+
expect(response).toEqual(new entities_1.MasterSettingEntity({
|
|
103
|
+
id: 'SETTING#MBC#TENANT#TenantListSetting',
|
|
104
|
+
settingValue: {},
|
|
105
|
+
}));
|
|
106
|
+
});
|
|
107
|
+
it('should return common-level setting if found', async () => {
|
|
108
|
+
jest.spyOn(service, 'getSetting').mockResolvedValueOnce({
|
|
109
|
+
id: 'SETTING#COMMON#CommonListSetting',
|
|
110
|
+
settingValue: {},
|
|
111
|
+
});
|
|
112
|
+
const response = await service.getSetting({ code: 'CommonListSetting' }, optionsMock);
|
|
113
|
+
expect(response).toEqual(new entities_1.MasterSettingEntity({
|
|
114
|
+
id: 'SETTING#COMMON#CommonListSetting',
|
|
115
|
+
settingValue: {},
|
|
116
|
+
}));
|
|
117
|
+
});
|
|
118
|
+
describe('createCommonTenantSetting', () => {
|
|
119
|
+
afterEach(() => {
|
|
120
|
+
jest.clearAllMocks();
|
|
121
|
+
});
|
|
122
|
+
it('should call createCommonTenantSetting with correct parameters and return the result', async () => {
|
|
123
|
+
const settingCode = ' UserListSetting';
|
|
124
|
+
const settingValue = {};
|
|
125
|
+
const settingName = 'user list setting';
|
|
126
|
+
const pk = `${constants_1.SETTING_TENANT_PREFIX}${core_1.KEY_SEPARATOR}${enums_1.SettingTypeEnum.TENANT_COMMON}`;
|
|
127
|
+
const sk = settingCode;
|
|
128
|
+
const mockResponse = {
|
|
129
|
+
pk: 'SETTING#COMMON',
|
|
130
|
+
sk: 'UserListSetting',
|
|
131
|
+
id: 'SETTING#COMMON#UserListSetting',
|
|
132
|
+
attributes: {},
|
|
133
|
+
code: 'UserListSetting',
|
|
134
|
+
version: 1,
|
|
135
|
+
tenantCode: 'COMMON',
|
|
136
|
+
name: 'UserListSetting',
|
|
137
|
+
type: 'MASTER',
|
|
138
|
+
};
|
|
139
|
+
const command = {
|
|
140
|
+
sk,
|
|
141
|
+
pk,
|
|
142
|
+
code: sk,
|
|
143
|
+
name: settingName,
|
|
144
|
+
id: (0, core_1.generateId)(pk, sk),
|
|
145
|
+
tenantCode: enums_1.SettingTypeEnum.TENANT_COMMON,
|
|
146
|
+
type: enums_1.SettingTypeEnum.TENANT_COMMON,
|
|
147
|
+
version: core_1.VERSION_FIRST,
|
|
148
|
+
attributes: settingValue,
|
|
149
|
+
};
|
|
150
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
151
|
+
pk: 'SETTING#COMMON',
|
|
152
|
+
sk: 'UserListSetting',
|
|
153
|
+
id: 'SETTING#COMMON#UserListSetting',
|
|
154
|
+
attributes: {},
|
|
155
|
+
code: 'UserListSetting',
|
|
156
|
+
version: 1,
|
|
157
|
+
tenantCode: 'COMMON',
|
|
158
|
+
name: 'UserListSetting',
|
|
159
|
+
type: 'MASTER',
|
|
160
|
+
});
|
|
161
|
+
const result = await commandService.publishAsync(command, optionsMock);
|
|
162
|
+
expect(result).toEqual(mockResponse);
|
|
163
|
+
});
|
|
164
|
+
it('should create a new common setting', async () => {
|
|
165
|
+
const mockResponse = {
|
|
166
|
+
pk: 'SETTING#COMMON',
|
|
167
|
+
sk: 'UserListSetting',
|
|
168
|
+
id: 'SETTING#COMMON#UserListSetting',
|
|
169
|
+
attributes: {},
|
|
170
|
+
code: 'UserListSetting',
|
|
171
|
+
version: 1,
|
|
172
|
+
tenantCode: 'COMMON',
|
|
173
|
+
name: 'UserListSetting',
|
|
174
|
+
type: 'MASTER',
|
|
175
|
+
};
|
|
176
|
+
const setting = {
|
|
177
|
+
code: 'UserListSetting',
|
|
178
|
+
name: 'UserListSetting',
|
|
179
|
+
settingValue: {},
|
|
180
|
+
};
|
|
181
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
182
|
+
pk: 'SETTING#COMMON',
|
|
183
|
+
sk: 'UserListSetting',
|
|
184
|
+
id: 'SETTING#COMMON#UserListSetting',
|
|
185
|
+
attributes: {},
|
|
186
|
+
code: 'UserListSetting',
|
|
187
|
+
version: 1,
|
|
188
|
+
tenantCode: 'COMMON',
|
|
189
|
+
name: 'UserListSetting',
|
|
190
|
+
type: 'MASTER',
|
|
191
|
+
});
|
|
192
|
+
const result = await service.createCommonTenantSetting(setting, optionsMock);
|
|
193
|
+
expect(result).toEqual(mockResponse);
|
|
194
|
+
});
|
|
195
|
+
it('should create a new common setting with the same code after delete', async () => {
|
|
196
|
+
const mockResponse = {
|
|
197
|
+
pk: 'SETTING#COMMON',
|
|
198
|
+
sk: 'UserListSetting',
|
|
199
|
+
id: 'SETTING#COMMON#UserListSetting',
|
|
200
|
+
attributes: {},
|
|
201
|
+
code: 'UserListSetting',
|
|
202
|
+
version: 3,
|
|
203
|
+
tenantCode: 'COMMON',
|
|
204
|
+
name: 'UserListSetting',
|
|
205
|
+
type: 'MASTER',
|
|
206
|
+
};
|
|
207
|
+
const setting = {
|
|
208
|
+
code: 'UserListSetting',
|
|
209
|
+
name: 'UserListSetting',
|
|
210
|
+
settingValue: {},
|
|
211
|
+
};
|
|
212
|
+
jest.spyOn(dataService, 'getItem').mockResolvedValue({
|
|
213
|
+
pk: 'SETTING#COMMON',
|
|
214
|
+
sk: 'UserListSetting',
|
|
215
|
+
id: 'SETTING#COMMON#UserListSetting',
|
|
216
|
+
attributes: {},
|
|
217
|
+
code: 'UserListSetting',
|
|
218
|
+
version: 2,
|
|
219
|
+
tenantCode: 'COMMON',
|
|
220
|
+
name: 'UserListSetting',
|
|
221
|
+
type: 'MASTER',
|
|
222
|
+
isDeleted: true,
|
|
223
|
+
});
|
|
224
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
225
|
+
pk: 'SETTING#COMMON',
|
|
226
|
+
sk: 'UserListSetting',
|
|
227
|
+
id: 'SETTING#COMMON#UserListSetting',
|
|
228
|
+
attributes: {},
|
|
229
|
+
code: 'UserListSetting',
|
|
230
|
+
version: 3,
|
|
231
|
+
tenantCode: 'COMMON',
|
|
232
|
+
name: 'UserListSetting',
|
|
233
|
+
type: 'MASTER',
|
|
234
|
+
});
|
|
235
|
+
const result = await service.createCommonTenantSetting(setting, optionsMock);
|
|
236
|
+
expect(result).toEqual(mockResponse);
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
describe('createTenantSetting', () => {
|
|
240
|
+
afterEach(() => {
|
|
241
|
+
jest.clearAllMocks();
|
|
242
|
+
});
|
|
243
|
+
it('should call createTenantSetting with correct parameters and return the result', async () => {
|
|
244
|
+
const settingCode = ' UserListSetting';
|
|
245
|
+
const settingValue = {};
|
|
246
|
+
const settingName = 'user list setting';
|
|
247
|
+
const tenantCode = 'MBC';
|
|
248
|
+
const pk = `${constants_1.SETTING_TENANT_PREFIX}${core_1.KEY_SEPARATOR}${tenantCode}`;
|
|
249
|
+
const sk = settingCode;
|
|
250
|
+
const mockResponse = {
|
|
251
|
+
pk: 'SETTING#MBC',
|
|
252
|
+
sk: 'UserListSetting',
|
|
253
|
+
id: 'SETTING#MBC#UserListSetting',
|
|
254
|
+
attributes: {},
|
|
255
|
+
code: 'UserListSetting',
|
|
256
|
+
version: 1,
|
|
257
|
+
tenantCode: 'MBC',
|
|
258
|
+
name: 'UserListSetting',
|
|
259
|
+
type: 'MASTER',
|
|
260
|
+
};
|
|
261
|
+
const command = {
|
|
262
|
+
sk,
|
|
263
|
+
pk,
|
|
264
|
+
code: sk,
|
|
265
|
+
name: settingName,
|
|
266
|
+
id: (0, core_1.generateId)(pk, sk),
|
|
267
|
+
tenantCode: enums_1.SettingTypeEnum.TENANT_COMMON,
|
|
268
|
+
type: enums_1.SettingTypeEnum.TENANT_COMMON,
|
|
269
|
+
version: core_1.VERSION_FIRST,
|
|
270
|
+
attributes: settingValue,
|
|
271
|
+
};
|
|
272
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
273
|
+
pk: 'SETTING#MBC',
|
|
274
|
+
sk: 'UserListSetting',
|
|
275
|
+
id: 'SETTING#MBC#UserListSetting',
|
|
276
|
+
attributes: {},
|
|
277
|
+
code: 'UserListSetting',
|
|
278
|
+
version: 1,
|
|
279
|
+
tenantCode: 'MBC',
|
|
280
|
+
name: 'UserListSetting',
|
|
281
|
+
type: 'MASTER',
|
|
282
|
+
});
|
|
283
|
+
const result = await commandService.publishAsync(command, optionsMock);
|
|
284
|
+
expect(result).toEqual(mockResponse);
|
|
285
|
+
});
|
|
286
|
+
it('should create a new tenant setting', async () => {
|
|
287
|
+
const mockResponse = {
|
|
288
|
+
pk: 'SETTING#MBC',
|
|
289
|
+
sk: 'UserListSetting',
|
|
290
|
+
id: 'SETTING#MBC#UserListSetting',
|
|
291
|
+
attributes: {},
|
|
292
|
+
code: 'UserListSetting',
|
|
293
|
+
version: 1,
|
|
294
|
+
tenantCode: 'MBC',
|
|
295
|
+
name: 'UserListSetting',
|
|
296
|
+
type: 'MASTER',
|
|
297
|
+
};
|
|
298
|
+
const setting = {
|
|
299
|
+
tenantCode: 'MBC',
|
|
300
|
+
code: 'UserListSetting',
|
|
301
|
+
name: 'UserListSetting',
|
|
302
|
+
settingValue: {},
|
|
303
|
+
};
|
|
304
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
305
|
+
pk: 'SETTING#MBC',
|
|
306
|
+
sk: 'UserListSetting',
|
|
307
|
+
id: 'SETTING#MBC#UserListSetting',
|
|
308
|
+
attributes: {},
|
|
309
|
+
code: 'UserListSetting',
|
|
310
|
+
version: 1,
|
|
311
|
+
tenantCode: 'MBC',
|
|
312
|
+
name: 'UserListSetting',
|
|
313
|
+
type: 'MASTER',
|
|
314
|
+
});
|
|
315
|
+
const result = await service.createTenantSetting(setting, optionsMock);
|
|
316
|
+
expect(result).toEqual(mockResponse);
|
|
317
|
+
});
|
|
318
|
+
it('should create a new tenant setting with the same code after delete', async () => {
|
|
319
|
+
const mockResponse = {
|
|
320
|
+
pk: 'SETTING#MBC',
|
|
321
|
+
sk: 'UserListSetting',
|
|
322
|
+
id: 'SETTING#MBC#UserListSetting',
|
|
323
|
+
attributes: {},
|
|
324
|
+
code: 'UserListSetting',
|
|
325
|
+
version: 3,
|
|
326
|
+
tenantCode: 'MBC',
|
|
327
|
+
name: 'UserListSetting',
|
|
328
|
+
type: 'MASTER',
|
|
329
|
+
};
|
|
330
|
+
const setting = {
|
|
331
|
+
tenantCode: 'MBC',
|
|
332
|
+
code: 'UserListSetting',
|
|
333
|
+
name: 'UserListSetting',
|
|
334
|
+
settingValue: {},
|
|
335
|
+
};
|
|
336
|
+
jest.spyOn(dataService, 'getItem').mockResolvedValue({
|
|
337
|
+
pk: 'SETTING#MBC',
|
|
338
|
+
sk: 'UserListSetting',
|
|
339
|
+
id: 'SETTING#MBC#UserListSetting',
|
|
340
|
+
attributes: {},
|
|
341
|
+
code: 'UserListSetting',
|
|
342
|
+
version: 2,
|
|
343
|
+
tenantCode: 'MBC',
|
|
344
|
+
name: 'UserListSetting',
|
|
345
|
+
type: 'MASTER',
|
|
346
|
+
isDeleted: true,
|
|
347
|
+
});
|
|
348
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
349
|
+
pk: 'SETTING#MBC',
|
|
350
|
+
sk: 'UserListSetting',
|
|
351
|
+
id: 'SETTING#MBC#UserListSetting',
|
|
352
|
+
attributes: {},
|
|
353
|
+
code: 'UserListSetting',
|
|
354
|
+
version: 3,
|
|
355
|
+
tenantCode: 'MBC',
|
|
356
|
+
name: 'UserListSetting',
|
|
357
|
+
type: 'MASTER',
|
|
358
|
+
});
|
|
359
|
+
const result = await service.createCommonTenantSetting(setting, optionsMock);
|
|
360
|
+
expect(result).toEqual(mockResponse);
|
|
361
|
+
});
|
|
362
|
+
});
|
|
363
|
+
describe('createGroupSetting', () => {
|
|
364
|
+
afterEach(() => {
|
|
365
|
+
jest.clearAllMocks();
|
|
366
|
+
});
|
|
367
|
+
it('should call createGroupSetting with correct parameters and return the result', async () => {
|
|
368
|
+
const settingCode = ' UserListSetting';
|
|
369
|
+
const settingValue = {};
|
|
370
|
+
const settingName = 'user list setting';
|
|
371
|
+
const tenantCode = 'MBC';
|
|
372
|
+
const pk = `${constants_1.SETTING_TENANT_PREFIX}${core_1.KEY_SEPARATOR}${tenantCode}`;
|
|
373
|
+
const sk = settingCode;
|
|
374
|
+
const mockResponse = {
|
|
375
|
+
pk: 'SETTING#MBC',
|
|
376
|
+
sk: 'GROUP#1#UserListSetting',
|
|
377
|
+
id: 'SETTING#MBC#GROUP#1#UserListSetting',
|
|
378
|
+
attributes: {},
|
|
379
|
+
code: 'UserListSetting',
|
|
380
|
+
version: 1,
|
|
381
|
+
tenantCode: 'MBC',
|
|
382
|
+
name: 'UserListSetting',
|
|
383
|
+
type: 'MASTER',
|
|
384
|
+
};
|
|
385
|
+
const commad = {
|
|
386
|
+
sk,
|
|
387
|
+
pk,
|
|
388
|
+
code: sk,
|
|
389
|
+
name: settingName,
|
|
390
|
+
id: (0, core_1.generateId)(pk, sk),
|
|
391
|
+
tenantCode: enums_1.SettingTypeEnum.TENANT_COMMON,
|
|
392
|
+
type: enums_1.SettingTypeEnum.TENANT_COMMON,
|
|
393
|
+
version: core_1.VERSION_FIRST,
|
|
394
|
+
attributes: settingValue,
|
|
395
|
+
};
|
|
396
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
397
|
+
pk: 'SETTING#MBC',
|
|
398
|
+
sk: 'GROUP#1#UserListSetting',
|
|
399
|
+
id: 'SETTING#MBC#GROUP#1#UserListSetting',
|
|
400
|
+
attributes: {},
|
|
401
|
+
code: 'UserListSetting',
|
|
402
|
+
version: 1,
|
|
403
|
+
tenantCode: 'MBC',
|
|
404
|
+
name: 'UserListSetting',
|
|
405
|
+
type: 'MASTER',
|
|
406
|
+
});
|
|
407
|
+
const result = await commandService.publishAsync(commad, optionsMock);
|
|
408
|
+
expect(result).toEqual(mockResponse);
|
|
409
|
+
});
|
|
410
|
+
it('should create a new group setting', async () => {
|
|
411
|
+
const mockResponse = {
|
|
412
|
+
pk: 'SETTING#MBC',
|
|
413
|
+
sk: 'GROUP#1#UserListSetting',
|
|
414
|
+
id: 'SETTING#MBC#GROUP#1#UserListSetting',
|
|
415
|
+
attributes: {},
|
|
416
|
+
code: 'UserListSetting',
|
|
417
|
+
version: 1,
|
|
418
|
+
tenantCode: 'MBC',
|
|
419
|
+
name: 'UserListSetting',
|
|
420
|
+
type: 'MASTER',
|
|
421
|
+
};
|
|
422
|
+
const setting = {
|
|
423
|
+
groupId: '1',
|
|
424
|
+
tenantCode: 'MBC',
|
|
425
|
+
code: 'UserListSetting',
|
|
426
|
+
name: 'UserListSetting',
|
|
427
|
+
settingValue: {},
|
|
428
|
+
};
|
|
429
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
430
|
+
pk: 'SETTING#MBC',
|
|
431
|
+
sk: 'GROUP#1#UserListSetting',
|
|
432
|
+
id: 'SETTING#MBC#GROUP#1#UserListSetting',
|
|
433
|
+
attributes: {},
|
|
434
|
+
code: 'UserListSetting',
|
|
435
|
+
version: 1,
|
|
436
|
+
tenantCode: 'MBC',
|
|
437
|
+
name: 'UserListSetting',
|
|
438
|
+
type: 'MASTER',
|
|
439
|
+
});
|
|
440
|
+
const result = await service.createGroupSetting(setting, optionsMock);
|
|
441
|
+
expect(result).toEqual(mockResponse);
|
|
442
|
+
});
|
|
443
|
+
it('should create a new group setting with the same code after delete', async () => {
|
|
444
|
+
const mockResponse = {
|
|
445
|
+
pk: 'SETTING#MBC',
|
|
446
|
+
sk: 'GROUP#1#UserListSetting',
|
|
447
|
+
id: 'SETTING#MBC#GROUP#1#UserListSetting',
|
|
448
|
+
attributes: {},
|
|
449
|
+
code: 'UserListSetting',
|
|
450
|
+
version: 3,
|
|
451
|
+
tenantCode: 'MBC',
|
|
452
|
+
name: 'UserListSetting',
|
|
453
|
+
type: 'MASTER',
|
|
454
|
+
};
|
|
455
|
+
const setting = {
|
|
456
|
+
groupId: '1',
|
|
457
|
+
tenantCode: 'MBC',
|
|
458
|
+
code: 'UserListSetting',
|
|
459
|
+
name: 'UserListSetting',
|
|
460
|
+
settingValue: {},
|
|
461
|
+
};
|
|
462
|
+
jest.spyOn(dataService, 'getItem').mockResolvedValue({
|
|
463
|
+
pk: 'SETTING#MBC',
|
|
464
|
+
sk: 'GROUP#1#UserListSetting',
|
|
465
|
+
id: 'SETTING#MBC#GROUP#1#UserListSetting',
|
|
466
|
+
attributes: {},
|
|
467
|
+
code: 'UserListSetting',
|
|
468
|
+
version: 2,
|
|
469
|
+
tenantCode: 'MBC',
|
|
470
|
+
name: 'UserListSetting',
|
|
471
|
+
type: 'MASTER',
|
|
472
|
+
isDeleted: true,
|
|
473
|
+
});
|
|
474
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
475
|
+
pk: 'SETTING#MBC',
|
|
476
|
+
sk: 'GROUP#1#UserListSetting',
|
|
477
|
+
id: 'SETTING#MBC#GROUP#1#UserListSetting',
|
|
478
|
+
attributes: {},
|
|
479
|
+
code: 'UserListSetting',
|
|
480
|
+
version: 3,
|
|
481
|
+
tenantCode: 'MBC',
|
|
482
|
+
name: 'UserListSetting',
|
|
483
|
+
type: 'MASTER',
|
|
484
|
+
});
|
|
485
|
+
const result = await service.createCommonTenantSetting(setting, optionsMock);
|
|
486
|
+
expect(result).toEqual(mockResponse);
|
|
487
|
+
});
|
|
488
|
+
});
|
|
489
|
+
describe('createUserSetting', () => {
|
|
490
|
+
afterEach(() => {
|
|
491
|
+
jest.clearAllMocks();
|
|
492
|
+
});
|
|
493
|
+
it('should call createGroupSetting with correct parameters and return the result', async () => {
|
|
494
|
+
const settingCode = ' UserListSetting';
|
|
495
|
+
const settingValue = {};
|
|
496
|
+
const settingName = 'user list setting';
|
|
497
|
+
const tenantCode = 'MBC';
|
|
498
|
+
const pk = `${constants_1.SETTING_TENANT_PREFIX}${core_1.KEY_SEPARATOR}${tenantCode}`;
|
|
499
|
+
const sk = settingCode;
|
|
500
|
+
const mockResponse = {
|
|
501
|
+
pk: 'SETTING#MBC',
|
|
502
|
+
sk: 'USER#abc#UserListSetting',
|
|
503
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
504
|
+
attributes: {},
|
|
505
|
+
code: 'UserListSetting',
|
|
506
|
+
version: 1,
|
|
507
|
+
tenantCode: 'MBC',
|
|
508
|
+
name: 'UserListSetting',
|
|
509
|
+
type: 'MASTER',
|
|
510
|
+
};
|
|
511
|
+
const commad = {
|
|
512
|
+
sk,
|
|
513
|
+
pk,
|
|
514
|
+
code: sk,
|
|
515
|
+
name: settingName,
|
|
516
|
+
id: (0, core_1.generateId)(pk, sk),
|
|
517
|
+
tenantCode: enums_1.SettingTypeEnum.TENANT_COMMON,
|
|
518
|
+
type: enums_1.SettingTypeEnum.TENANT_COMMON,
|
|
519
|
+
version: core_1.VERSION_FIRST,
|
|
520
|
+
attributes: settingValue,
|
|
521
|
+
};
|
|
522
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
523
|
+
pk: 'SETTING#MBC',
|
|
524
|
+
sk: 'USER#abc#UserListSetting',
|
|
525
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
526
|
+
attributes: {},
|
|
527
|
+
code: 'UserListSetting',
|
|
528
|
+
version: 1,
|
|
529
|
+
tenantCode: 'MBC',
|
|
530
|
+
name: 'UserListSetting',
|
|
531
|
+
type: 'MASTER',
|
|
532
|
+
});
|
|
533
|
+
const result = await commandService.publishAsync(commad, optionsMock);
|
|
534
|
+
expect(result).toEqual(mockResponse);
|
|
535
|
+
});
|
|
536
|
+
it('should create a new user setting', async () => {
|
|
537
|
+
const mockResponse = {
|
|
538
|
+
pk: 'SETTING#MBC',
|
|
539
|
+
sk: 'USER#abc#UserListSetting',
|
|
540
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
541
|
+
attributes: {},
|
|
542
|
+
code: 'UserListSetting',
|
|
543
|
+
version: 1,
|
|
544
|
+
tenantCode: 'MBC',
|
|
545
|
+
name: 'UserListSetting',
|
|
546
|
+
type: 'MASTER',
|
|
547
|
+
};
|
|
548
|
+
const setting = {
|
|
549
|
+
tenantCode: 'MBC',
|
|
550
|
+
code: 'UserListSetting',
|
|
551
|
+
name: 'UserListSetting',
|
|
552
|
+
settingValue: {},
|
|
553
|
+
userId: 'abc',
|
|
554
|
+
};
|
|
555
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
556
|
+
pk: 'SETTING#MBC',
|
|
557
|
+
sk: 'USER#abc#UserListSetting',
|
|
558
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
559
|
+
attributes: {},
|
|
560
|
+
code: 'UserListSetting',
|
|
561
|
+
version: 1,
|
|
562
|
+
tenantCode: 'MBC',
|
|
563
|
+
name: 'UserListSetting',
|
|
564
|
+
type: 'MASTER',
|
|
565
|
+
});
|
|
566
|
+
const result = await service.createUserSetting(setting, optionsMock);
|
|
567
|
+
expect(result).toEqual(mockResponse);
|
|
568
|
+
});
|
|
569
|
+
it('should create a new user setting with the same code after delete', async () => {
|
|
570
|
+
const mockResponse = {
|
|
571
|
+
pk: 'SETTING#MBC',
|
|
572
|
+
sk: 'USER#abc#UserListSetting',
|
|
573
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
574
|
+
attributes: {},
|
|
575
|
+
code: 'UserListSetting',
|
|
576
|
+
version: 3,
|
|
577
|
+
tenantCode: 'MBC',
|
|
578
|
+
name: 'UserListSetting',
|
|
579
|
+
type: 'MASTER',
|
|
580
|
+
};
|
|
581
|
+
const setting = {
|
|
582
|
+
tenantCode: 'MBC',
|
|
583
|
+
code: 'UserListSetting',
|
|
584
|
+
name: 'UserListSetting',
|
|
585
|
+
settingValue: {},
|
|
586
|
+
userId: 'abc',
|
|
587
|
+
};
|
|
588
|
+
jest.spyOn(dataService, 'getItem').mockResolvedValue({
|
|
589
|
+
pk: 'SETTING#MBC',
|
|
590
|
+
sk: 'USER#abc#UserListSetting',
|
|
591
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
592
|
+
attributes: {},
|
|
593
|
+
code: 'UserListSetting',
|
|
594
|
+
version: 2,
|
|
595
|
+
tenantCode: 'MBC',
|
|
596
|
+
name: 'UserListSetting',
|
|
597
|
+
type: 'MASTER',
|
|
598
|
+
isDeleted: true,
|
|
599
|
+
});
|
|
600
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
601
|
+
pk: 'SETTING#MBC',
|
|
602
|
+
sk: 'USER#abc#UserListSetting',
|
|
603
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
604
|
+
attributes: {},
|
|
605
|
+
code: 'UserListSetting',
|
|
606
|
+
version: 3,
|
|
607
|
+
tenantCode: 'MBC',
|
|
608
|
+
name: 'UserListSetting',
|
|
609
|
+
type: 'MASTER',
|
|
610
|
+
});
|
|
611
|
+
const result = await service.createUserSetting(setting, optionsMock);
|
|
612
|
+
expect(result).toEqual(mockResponse);
|
|
613
|
+
});
|
|
614
|
+
});
|
|
615
|
+
describe('updateSetting', () => {
|
|
616
|
+
it('should call updateSetting with correct parameters and return the result', async () => {
|
|
617
|
+
const settingCode = ' UserListSetting';
|
|
618
|
+
const settingValue = {};
|
|
619
|
+
const settingName = 'user list setting';
|
|
620
|
+
const tenantCode = 'MBC';
|
|
621
|
+
const pk = `${constants_1.SETTING_TENANT_PREFIX}${core_1.KEY_SEPARATOR}${tenantCode}`;
|
|
622
|
+
const sk = settingCode;
|
|
623
|
+
const mockResponse = {
|
|
624
|
+
pk: 'SETTING#MBC',
|
|
625
|
+
sk: 'USER#abcUserListSetting',
|
|
626
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
627
|
+
attributes: {},
|
|
628
|
+
code: 'UserListSetting',
|
|
629
|
+
version: 1,
|
|
630
|
+
tenantCode: 'MBC',
|
|
631
|
+
name: 'UserListSetting',
|
|
632
|
+
type: 'MASTER',
|
|
633
|
+
};
|
|
634
|
+
const command = {
|
|
635
|
+
sk,
|
|
636
|
+
pk,
|
|
637
|
+
code: sk,
|
|
638
|
+
name: settingName,
|
|
639
|
+
id: (0, core_1.generateId)(pk, sk),
|
|
640
|
+
tenantCode: enums_1.SettingTypeEnum.TENANT_COMMON,
|
|
641
|
+
type: enums_1.SettingTypeEnum.TENANT_COMMON,
|
|
642
|
+
version: core_1.VERSION_FIRST,
|
|
643
|
+
attributes: settingValue,
|
|
644
|
+
};
|
|
645
|
+
jest.spyOn(commandService, 'publishAsync').mockResolvedValue({
|
|
646
|
+
pk: 'SETTING#MBC',
|
|
647
|
+
sk: 'USER#abcUserListSetting',
|
|
648
|
+
id: 'SETTING#MBC#USER#abc#UserListSetting',
|
|
649
|
+
attributes: {},
|
|
650
|
+
code: 'UserListSetting',
|
|
651
|
+
version: 1,
|
|
652
|
+
tenantCode: 'MBC',
|
|
653
|
+
name: 'UserListSetting',
|
|
654
|
+
type: 'MASTER',
|
|
655
|
+
});
|
|
656
|
+
const result = await commandService.publishAsync(command, optionsMock);
|
|
657
|
+
expect(result).toEqual(mockResponse);
|
|
658
|
+
});
|
|
659
|
+
});
|
|
660
|
+
describe('deleteSetting', () => { });
|
|
661
|
+
});
|
|
662
|
+
//# sourceMappingURL=master-setting.service.spec.js.map
|