@mbc-cqrs-serverless/survey-template 1.0.26 → 1.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"survey-answer.controller.spec.js","sourceRoot":"","sources":["../src/survey-answer.controller.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const testing_1 = require("@nestjs/testing");
4
+ const core_1 = require("@mbc-cqrs-serverless/core");
5
+ const survey_answer_service_1 = require("./survey-answer.service");
6
+ const survey_answer_data_entity_1 = require("./entity/survey-answer-data.entity");
7
+ // Mock getUserContext
8
+ jest.mock('@mbc-cqrs-serverless/core', () => {
9
+ const original = jest.requireActual('@mbc-cqrs-serverless/core');
10
+ return {
11
+ ...original,
12
+ getUserContext: jest.fn(),
13
+ generateId: jest.fn().mockImplementation((pk, sk) => `${pk}#${sk}`),
14
+ };
15
+ });
16
+ // Mock ulid
17
+ jest.mock('ulid', () => ({
18
+ ulid: jest.fn().mockReturnValue('01HTEST123456789ABCDEF'),
19
+ }));
20
+ const mockGetUserContext = core_1.getUserContext;
21
+ describe('SurveyAnswerService', () => {
22
+ let service;
23
+ let commandService;
24
+ const mockInvokeContext = {
25
+ event: {
26
+ requestContext: {
27
+ authorizer: {
28
+ jwt: {
29
+ claims: {
30
+ 'custom:tenant': 'test-tenant',
31
+ 'cognito:username': 'test-user',
32
+ name: 'Test User',
33
+ },
34
+ },
35
+ },
36
+ },
37
+ },
38
+ };
39
+ const mockCommandService = {
40
+ publishAsync: jest.fn(),
41
+ publishPartialUpdateAsync: jest.fn(),
42
+ tableName: 'test-table',
43
+ };
44
+ const mockDataService = {
45
+ getItem: jest.fn(),
46
+ getItemVersion: jest.fn(),
47
+ };
48
+ beforeEach(async () => {
49
+ // Default mock for getUserContext
50
+ mockGetUserContext.mockReturnValue({
51
+ tenantCode: 'test-tenant',
52
+ userId: 'test-user',
53
+ });
54
+ const module = await testing_1.Test.createTestingModule({
55
+ providers: [
56
+ survey_answer_service_1.SurveyAnswerService,
57
+ {
58
+ provide: core_1.CommandService,
59
+ useValue: mockCommandService,
60
+ },
61
+ {
62
+ provide: core_1.DataService,
63
+ useValue: mockDataService,
64
+ },
65
+ ],
66
+ }).compile();
67
+ service = module.get(survey_answer_service_1.SurveyAnswerService);
68
+ commandService = module.get(core_1.CommandService);
69
+ });
70
+ afterEach(() => {
71
+ jest.clearAllMocks();
72
+ });
73
+ it('should be defined', () => {
74
+ expect(service).toBeDefined();
75
+ });
76
+ describe('create', () => {
77
+ it('should create a survey answer successfully', async () => {
78
+ const createDto = {
79
+ attributes: {
80
+ surveyId: 'survey123',
81
+ answer: { q1: 'answer1', q2: 'answer2' },
82
+ email: 'test@example.com',
83
+ },
84
+ };
85
+ const mockCreatedItem = {
86
+ pk: 'SURVEY#test-tenant',
87
+ sk: 'SURVEY_ANSWER#survey123#01HTEST123456789ABCDEF',
88
+ id: 'SURVEY#test-tenant#SURVEY_ANSWER#survey123#01HTEST123456789ABCDEF',
89
+ name: '',
90
+ version: 1,
91
+ attributes: createDto.attributes,
92
+ };
93
+ mockCommandService.publishAsync.mockResolvedValue(mockCreatedItem);
94
+ const result = await service.create(createDto, {
95
+ invokeContext: mockInvokeContext,
96
+ });
97
+ expect(commandService.publishAsync).toHaveBeenCalledWith(expect.objectContaining({
98
+ pk: 'SURVEY#test-tenant',
99
+ sk: 'SURVEY_ANSWER#survey123#01HTEST123456789ABCDEF',
100
+ tenantCode: 'test-tenant',
101
+ name: '',
102
+ attributes: createDto.attributes,
103
+ }), expect.objectContaining({
104
+ invokeContext: mockInvokeContext,
105
+ }));
106
+ expect(result).toBeInstanceOf(survey_answer_data_entity_1.SurveyAnswerDataEntity);
107
+ });
108
+ it('should use tenant from user context', async () => {
109
+ mockGetUserContext.mockReturnValue({
110
+ tenantCode: 'custom-tenant',
111
+ userId: 'test-user',
112
+ });
113
+ const createDto = {
114
+ attributes: {
115
+ surveyId: 'survey456',
116
+ answer: {},
117
+ },
118
+ };
119
+ mockCommandService.publishAsync.mockResolvedValue({
120
+ pk: 'SURVEY#custom-tenant',
121
+ sk: 'SURVEY_ANSWER#survey456#01HTEST123456789ABCDEF',
122
+ });
123
+ await service.create(createDto, { invokeContext: mockInvokeContext });
124
+ expect(commandService.publishAsync).toHaveBeenCalledWith(expect.objectContaining({
125
+ pk: 'SURVEY#custom-tenant',
126
+ tenantCode: 'custom-tenant',
127
+ }), expect.any(Object));
128
+ });
129
+ it('should generate correct sk with surveyId', async () => {
130
+ const createDto = {
131
+ attributes: {
132
+ surveyId: 'my-survey-id',
133
+ answer: { question: 'answer' },
134
+ },
135
+ };
136
+ mockCommandService.publishAsync.mockResolvedValue({
137
+ pk: 'SURVEY#test-tenant',
138
+ sk: 'SURVEY_ANSWER#my-survey-id#01HTEST123456789ABCDEF',
139
+ });
140
+ await service.create(createDto, { invokeContext: mockInvokeContext });
141
+ expect(commandService.publishAsync).toHaveBeenCalledWith(expect.objectContaining({
142
+ sk: 'SURVEY_ANSWER#my-survey-id#01HTEST123456789ABCDEF',
143
+ code: 'SURVEY_ANSWER#my-survey-id#01HTEST123456789ABCDEF',
144
+ }), expect.any(Object));
145
+ });
146
+ it('should set empty name for answer', async () => {
147
+ const createDto = {
148
+ attributes: {
149
+ surveyId: 'survey789',
150
+ answer: {},
151
+ },
152
+ };
153
+ mockCommandService.publishAsync.mockResolvedValue({
154
+ name: '',
155
+ });
156
+ await service.create(createDto, { invokeContext: mockInvokeContext });
157
+ expect(commandService.publishAsync).toHaveBeenCalledWith(expect.objectContaining({
158
+ name: '',
159
+ }), expect.any(Object));
160
+ });
161
+ it('should include all attributes in command', async () => {
162
+ const createDto = {
163
+ attributes: {
164
+ surveyId: 'survey-abc',
165
+ answer: { q1: 'a1', q2: 'a2', q3: 'a3' },
166
+ email: 'user@domain.com',
167
+ customField: 'custom value',
168
+ },
169
+ };
170
+ mockCommandService.publishAsync.mockResolvedValue({
171
+ attributes: createDto.attributes,
172
+ });
173
+ await service.create(createDto, { invokeContext: mockInvokeContext });
174
+ expect(commandService.publishAsync).toHaveBeenCalledWith(expect.objectContaining({
175
+ attributes: createDto.attributes,
176
+ }), expect.any(Object));
177
+ });
178
+ });
179
+ });
180
+ //# sourceMappingURL=survey-answer.service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"survey-answer.service.spec.js","sourceRoot":"","sources":["../src/survey-answer.service.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const testing_1 = require("@nestjs/testing");
4
+ const core_1 = require("@mbc-cqrs-serverless/core");
5
+ const survey_template_controller_1 = require("./survey-template.controller");
6
+ const survey_template_service_1 = require("./survey-template.service");
7
+ const survey_template_data_entity_1 = require("./entity/survey-template-data.entity");
8
+ const survey_template_data_list_entity_1 = require("./entity/survey-template-data-list.entity");
9
+ // Mock getUserContext
10
+ jest.mock('@mbc-cqrs-serverless/core', () => {
11
+ const original = jest.requireActual('@mbc-cqrs-serverless/core');
12
+ return {
13
+ ...original,
14
+ getUserContext: jest.fn(),
15
+ };
16
+ });
17
+ const mockGetUserContext = core_1.getUserContext;
18
+ describe('SurveyTemplateController', () => {
19
+ let controller;
20
+ let service;
21
+ const mockInvokeContext = {
22
+ event: {
23
+ requestContext: {
24
+ authorizer: {
25
+ jwt: {
26
+ claims: {
27
+ 'custom:tenant': 'test-tenant',
28
+ 'cognito:username': 'test-user',
29
+ name: 'Test User',
30
+ },
31
+ },
32
+ },
33
+ },
34
+ },
35
+ };
36
+ const mockService = {
37
+ searchData: jest.fn(),
38
+ create: jest.fn(),
39
+ findOne: jest.fn(),
40
+ update: jest.fn(),
41
+ remove: jest.fn(),
42
+ };
43
+ beforeEach(async () => {
44
+ // Default mock for getUserContext
45
+ mockGetUserContext.mockReturnValue({
46
+ tenantCode: 'test-tenant',
47
+ userId: 'test-user',
48
+ });
49
+ const module = await testing_1.Test.createTestingModule({
50
+ controllers: [survey_template_controller_1.SurveyTemplateController],
51
+ providers: [
52
+ {
53
+ provide: survey_template_service_1.SurveyTemplateService,
54
+ useValue: mockService,
55
+ },
56
+ ],
57
+ }).compile();
58
+ controller = module.get(survey_template_controller_1.SurveyTemplateController);
59
+ service = module.get(survey_template_service_1.SurveyTemplateService);
60
+ });
61
+ afterEach(() => {
62
+ jest.clearAllMocks();
63
+ });
64
+ it('should be defined', () => {
65
+ expect(controller).toBeDefined();
66
+ });
67
+ describe('searchData', () => {
68
+ it('should search survey templates successfully', async () => {
69
+ const searchDto = { keyword: 'test' };
70
+ const mockResult = new survey_template_data_list_entity_1.SurveyTemplateDataListEntity({
71
+ total: 1,
72
+ items: [
73
+ new survey_template_data_entity_1.SurveyTemplateDataEntity({
74
+ pk: 'SURVEY#test-tenant',
75
+ sk: 'TEMPLATE#01HTEST',
76
+ name: 'Test Survey',
77
+ }),
78
+ ],
79
+ });
80
+ mockService.searchData.mockResolvedValue(mockResult);
81
+ const result = await controller.searchData(searchDto, mockInvokeContext);
82
+ expect(service.searchData).toHaveBeenCalledWith('test-tenant', searchDto);
83
+ expect(result).toEqual(mockResult);
84
+ });
85
+ it('should use tenant from user context', async () => {
86
+ mockGetUserContext.mockReturnValue({
87
+ tenantCode: 'custom-tenant',
88
+ userId: 'test-user',
89
+ });
90
+ const searchDto = {};
91
+ const mockResult = new survey_template_data_list_entity_1.SurveyTemplateDataListEntity({
92
+ total: 0,
93
+ items: [],
94
+ });
95
+ mockService.searchData.mockResolvedValue(mockResult);
96
+ await controller.searchData(searchDto, mockInvokeContext);
97
+ expect(service.searchData).toHaveBeenCalledWith('custom-tenant', searchDto);
98
+ });
99
+ it('should handle service errors', async () => {
100
+ const searchDto = {};
101
+ const error = new Error('Search failed');
102
+ mockService.searchData.mockRejectedValue(error);
103
+ await expect(controller.searchData(searchDto, mockInvokeContext)).rejects.toThrow('Search failed');
104
+ });
105
+ });
106
+ describe('create', () => {
107
+ it('should create survey template successfully', async () => {
108
+ const createDto = {
109
+ name: 'New Survey',
110
+ attributes: { surveyTemplate: {} },
111
+ };
112
+ const mockResult = new survey_template_data_entity_1.SurveyTemplateDataEntity({
113
+ pk: 'SURVEY#test-tenant',
114
+ sk: 'TEMPLATE#01HTEST',
115
+ name: 'New Survey',
116
+ version: 1,
117
+ });
118
+ mockService.create.mockResolvedValue(mockResult);
119
+ const result = await controller.create(mockInvokeContext, createDto);
120
+ expect(service.create).toHaveBeenCalledWith(createDto, {
121
+ invokeContext: mockInvokeContext,
122
+ });
123
+ expect(result).toEqual(mockResult);
124
+ });
125
+ it('should handle creation errors', async () => {
126
+ const createDto = {
127
+ name: 'New Survey',
128
+ attributes: {},
129
+ };
130
+ const error = new Error('Creation failed');
131
+ mockService.create.mockRejectedValue(error);
132
+ await expect(controller.create(mockInvokeContext, createDto)).rejects.toThrow('Creation failed');
133
+ });
134
+ });
135
+ describe('getData', () => {
136
+ it('should get survey template by id successfully', async () => {
137
+ const detailDto = {
138
+ pk: 'SURVEY#test-tenant',
139
+ sk: 'TEMPLATE#01HTEST',
140
+ };
141
+ const mockResult = new survey_template_data_entity_1.SurveyTemplateDataEntity({
142
+ pk: 'SURVEY#test-tenant',
143
+ sk: 'TEMPLATE#01HTEST',
144
+ name: 'Test Survey',
145
+ version: 1,
146
+ });
147
+ mockService.findOne.mockResolvedValue(mockResult);
148
+ const result = await controller.getData(detailDto);
149
+ expect(service.findOne).toHaveBeenCalledWith(detailDto);
150
+ expect(result).toEqual(mockResult);
151
+ });
152
+ it('should handle not found errors', async () => {
153
+ const detailDto = {
154
+ pk: 'SURVEY#test-tenant',
155
+ sk: 'TEMPLATE#notfound',
156
+ };
157
+ const error = new Error('Survey template not found!');
158
+ mockService.findOne.mockRejectedValue(error);
159
+ await expect(controller.getData(detailDto)).rejects.toThrow('Survey template not found!');
160
+ });
161
+ });
162
+ describe('updateData', () => {
163
+ it('should update survey template successfully', async () => {
164
+ const detailDto = {
165
+ pk: 'SURVEY#test-tenant',
166
+ sk: 'TEMPLATE#01HTEST',
167
+ };
168
+ const updateDto = {
169
+ name: 'Updated Survey',
170
+ };
171
+ const mockResult = new survey_template_data_entity_1.SurveyTemplateDataEntity({
172
+ pk: 'SURVEY#test-tenant',
173
+ sk: 'TEMPLATE#01HTEST',
174
+ name: 'Updated Survey',
175
+ version: 2,
176
+ });
177
+ mockService.update.mockResolvedValue(mockResult);
178
+ const result = await controller.updateData(detailDto, updateDto, mockInvokeContext);
179
+ expect(service.update).toHaveBeenCalledWith(detailDto, updateDto, {
180
+ invokeContext: mockInvokeContext,
181
+ });
182
+ expect(result).toEqual(mockResult);
183
+ });
184
+ it('should handle update errors', async () => {
185
+ const detailDto = {
186
+ pk: 'SURVEY#test-tenant',
187
+ sk: 'TEMPLATE#01HTEST',
188
+ };
189
+ const updateDto = { name: 'Updated' };
190
+ const error = new Error('Update failed');
191
+ mockService.update.mockRejectedValue(error);
192
+ await expect(controller.updateData(detailDto, updateDto, mockInvokeContext)).rejects.toThrow('Update failed');
193
+ });
194
+ });
195
+ describe('deleteData', () => {
196
+ it('should delete survey template successfully', async () => {
197
+ const detailDto = {
198
+ pk: 'SURVEY#test-tenant',
199
+ sk: 'TEMPLATE#01HTEST',
200
+ };
201
+ const mockResult = new survey_template_data_entity_1.SurveyTemplateDataEntity({
202
+ pk: 'SURVEY#test-tenant',
203
+ sk: 'TEMPLATE#01HTEST',
204
+ isDeleted: true,
205
+ version: 2,
206
+ });
207
+ mockService.remove.mockResolvedValue(mockResult);
208
+ const result = await controller.deleteData(detailDto, mockInvokeContext);
209
+ expect(service.remove).toHaveBeenCalledWith(detailDto, {
210
+ invokeContext: mockInvokeContext,
211
+ });
212
+ expect(result).toEqual(mockResult);
213
+ });
214
+ it('should handle deletion errors', async () => {
215
+ const detailDto = {
216
+ pk: 'SURVEY#test-tenant',
217
+ sk: 'TEMPLATE#01HTEST',
218
+ };
219
+ const error = new Error('Deletion failed');
220
+ mockService.remove.mockRejectedValue(error);
221
+ await expect(controller.deleteData(detailDto, mockInvokeContext)).rejects.toThrow('Deletion failed');
222
+ });
223
+ });
224
+ });
225
+ //# sourceMappingURL=survey-template.controller.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"survey-template.controller.spec.js","sourceRoot":"","sources":["../src/survey-template.controller.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};