@steedos-labs/content-compliance 0.7.17 → 0.7.19

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 (160) hide show
  1. package/main/default/objects/pepsico_material_approval/buttons/pepsico_postpone_review.button.yml +1 -1
  2. package/main/default/objects/pepsico_material_approval/buttons/pepsico_urgent_review.button.yml +1 -1
  3. package/main/default/objects/pepsico_material_approval/fields/internal_collaborator.field.yml +4 -4
  4. package/main/default/objects/pepsico_material_approval/fields/internal_collaborator_edit.field.yml +2 -2
  5. package/main/default/objects/pepsico_material_approval/fields/material_owner.field.yml +1 -1
  6. package/package.json +1 -1
  7. package/dist/index.js +0 -1
  8. package/lib/actions/addBulkMaterials.d.ts +0 -15
  9. package/lib/actions/addBulkMaterials.js +0 -69
  10. package/lib/actions/addBulkMaterials.js.map +0 -1
  11. package/lib/actions/briefFlows.d.ts +0 -14
  12. package/lib/actions/briefFlows.js +0 -46
  13. package/lib/actions/briefFlows.js.map +0 -1
  14. package/lib/actions/bypassApproval.d.ts +0 -10
  15. package/lib/actions/bypassApproval.js +0 -269
  16. package/lib/actions/bypassApproval.js.map +0 -1
  17. package/lib/actions/bypassMaterial.d.ts +0 -10
  18. package/lib/actions/bypassMaterial.js +0 -190
  19. package/lib/actions/bypassMaterial.js.map +0 -1
  20. package/lib/actions/calculateSpotCheckRates.d.ts +0 -13
  21. package/lib/actions/calculateSpotCheckRates.js +0 -94
  22. package/lib/actions/calculateSpotCheckRates.js.map +0 -1
  23. package/lib/actions/collection.d.ts +0 -2
  24. package/lib/actions/collection.js +0 -26
  25. package/lib/actions/collection.js.map +0 -1
  26. package/lib/actions/confirmDeployment.d.ts +0 -7
  27. package/lib/actions/confirmDeployment.js +0 -31
  28. package/lib/actions/confirmDeployment.js.map +0 -1
  29. package/lib/actions/dashboard_sync_data.d.ts +0 -7
  30. package/lib/actions/dashboard_sync_data.js +0 -30
  31. package/lib/actions/dashboard_sync_data.js.map +0 -1
  32. package/lib/actions/fixStuckPersonnelReview.d.ts +0 -20
  33. package/lib/actions/fixStuckPersonnelReview.js +0 -145
  34. package/lib/actions/fixStuckPersonnelReview.js.map +0 -1
  35. package/lib/actions/hasDuplicateMaterials.d.ts +0 -9
  36. package/lib/actions/hasDuplicateMaterials.js +0 -30
  37. package/lib/actions/hasDuplicateMaterials.js.map +0 -1
  38. package/lib/actions/imageComparison.d.ts +0 -34
  39. package/lib/actions/imageComparison.js +0 -95
  40. package/lib/actions/imageComparison.js.map +0 -1
  41. package/lib/actions/index.d.ts +0 -27
  42. package/lib/actions/index.js +0 -31
  43. package/lib/actions/index.js.map +0 -1
  44. package/lib/actions/initCollaborator.d.ts +0 -13
  45. package/lib/actions/initCollaborator.js +0 -87
  46. package/lib/actions/initCollaborator.js.map +0 -1
  47. package/lib/actions/initUrgentQuota.d.ts +0 -17
  48. package/lib/actions/initUrgentQuota.js +0 -99
  49. package/lib/actions/initUrgentQuota.js.map +0 -1
  50. package/lib/actions/migrateReviewCompletedDate.d.ts +0 -21
  51. package/lib/actions/migrateReviewCompletedDate.js +0 -150
  52. package/lib/actions/migrateReviewCompletedDate.js.map +0 -1
  53. package/lib/actions/migrateSpotCheckData.d.ts +0 -23
  54. package/lib/actions/migrateSpotCheckData.js +0 -143
  55. package/lib/actions/migrateSpotCheckData.js.map +0 -1
  56. package/lib/actions/migrateSpotCheckDepartments.d.ts +0 -25
  57. package/lib/actions/migrateSpotCheckDepartments.js +0 -142
  58. package/lib/actions/migrateSpotCheckDepartments.js.map +0 -1
  59. package/lib/actions/postponeDeployment.d.ts +0 -7
  60. package/lib/actions/postponeDeployment.js +0 -30
  61. package/lib/actions/postponeDeployment.js.map +0 -1
  62. package/lib/actions/postponeReview.d.ts +0 -7
  63. package/lib/actions/postponeReview.js +0 -30
  64. package/lib/actions/postponeReview.js.map +0 -1
  65. package/lib/actions/progress.d.ts +0 -18
  66. package/lib/actions/progress.js +0 -71
  67. package/lib/actions/progress.js.map +0 -1
  68. package/lib/actions/rule.d.ts +0 -7
  69. package/lib/actions/rule.js +0 -27
  70. package/lib/actions/rule.js.map +0 -1
  71. package/lib/actions/sendToContentHub.d.ts +0 -7
  72. package/lib/actions/sendToContentHub.js +0 -37
  73. package/lib/actions/sendToContentHub.js.map +0 -1
  74. package/lib/actions/spotCheckMaterial.d.ts +0 -46
  75. package/lib/actions/spotCheckMaterial.js +0 -591
  76. package/lib/actions/spotCheckMaterial.js.map +0 -1
  77. package/lib/actions/submit.d.ts +0 -7
  78. package/lib/actions/submit.js +0 -48
  79. package/lib/actions/submit.js.map +0 -1
  80. package/lib/actions/submitKids.d.ts +0 -7
  81. package/lib/actions/submitKids.js +0 -30
  82. package/lib/actions/submitKids.js.map +0 -1
  83. package/lib/actions/submitMaterial.d.ts +0 -7
  84. package/lib/actions/submitMaterial.js +0 -30
  85. package/lib/actions/submitMaterial.js.map +0 -1
  86. package/lib/actions/submitPreReview.d.ts +0 -7
  87. package/lib/actions/submitPreReview.js +0 -34
  88. package/lib/actions/submitPreReview.js.map +0 -1
  89. package/lib/actions/terminate.d.ts +0 -7
  90. package/lib/actions/terminate.js +0 -30
  91. package/lib/actions/terminate.js.map +0 -1
  92. package/lib/actions/urgentApproval.d.ts +0 -14
  93. package/lib/actions/urgentApproval.js +0 -51
  94. package/lib/actions/urgentApproval.js.map +0 -1
  95. package/lib/const.d.ts +0 -1
  96. package/lib/const.js +0 -6
  97. package/lib/const.js.map +0 -1
  98. package/lib/index.d.ts +0 -1
  99. package/lib/index.js +0 -1238
  100. package/lib/index.js.map +0 -1
  101. package/lib/methods/AI.d.ts +0 -1
  102. package/lib/methods/AI.js +0 -45
  103. package/lib/methods/AI.js.map +0 -1
  104. package/lib/methods/__tests__/__mocks__/empty.d.ts +0 -2
  105. package/lib/methods/__tests__/__mocks__/empty.js +0 -4
  106. package/lib/methods/__tests__/__mocks__/empty.js.map +0 -1
  107. package/lib/methods/__tests__/postponeReview.test.d.ts +0 -1
  108. package/lib/methods/__tests__/postponeReview.test.js +0 -102
  109. package/lib/methods/__tests__/postponeReview.test.js.map +0 -1
  110. package/lib/methods/__tests__/pre_review_flow.test.d.ts +0 -1
  111. package/lib/methods/__tests__/pre_review_flow.test.js +0 -583
  112. package/lib/methods/__tests__/pre_review_flow.test.js.map +0 -1
  113. package/lib/methods/__tests__/pre_review_helpers.test.d.ts +0 -1
  114. package/lib/methods/__tests__/pre_review_helpers.test.js +0 -306
  115. package/lib/methods/__tests__/pre_review_helpers.test.js.map +0 -1
  116. package/lib/methods/__tests__/urgent.test.d.ts +0 -1
  117. package/lib/methods/__tests__/urgent.test.js +0 -121
  118. package/lib/methods/__tests__/urgent.test.js.map +0 -1
  119. package/lib/methods/agent.d.ts +0 -4
  120. package/lib/methods/agent.js +0 -86
  121. package/lib/methods/agent.js.map +0 -1
  122. package/lib/methods/approval_engine.d.ts +0 -40
  123. package/lib/methods/approval_engine.js +0 -2302
  124. package/lib/methods/approval_engine.js.map +0 -1
  125. package/lib/methods/consts.d.ts +0 -209
  126. package/lib/methods/consts.js +0 -46
  127. package/lib/methods/consts.js.map +0 -1
  128. package/lib/methods/content_hub.d.ts +0 -2
  129. package/lib/methods/content_hub.js +0 -228
  130. package/lib/methods/content_hub.js.map +0 -1
  131. package/lib/methods/dashboard_sync_data.d.ts +0 -4
  132. package/lib/methods/dashboard_sync_data.js +0 -346
  133. package/lib/methods/dashboard_sync_data.js.map +0 -1
  134. package/lib/methods/docx.d.ts +0 -3
  135. package/lib/methods/docx.js +0 -12
  136. package/lib/methods/docx.js.map +0 -1
  137. package/lib/methods/image_comparison.d.ts +0 -39
  138. package/lib/methods/image_comparison.js +0 -454
  139. package/lib/methods/image_comparison.js.map +0 -1
  140. package/lib/methods/index.d.ts +0 -7
  141. package/lib/methods/index.js +0 -11
  142. package/lib/methods/index.js.map +0 -1
  143. package/lib/methods/material.d.ts +0 -15
  144. package/lib/methods/material.js +0 -756
  145. package/lib/methods/material.js.map +0 -1
  146. package/lib/methods/notification.d.ts +0 -4
  147. package/lib/methods/notification.js +0 -270
  148. package/lib/methods/notification.js.map +0 -1
  149. package/lib/methods/password_expiry.d.ts +0 -1
  150. package/lib/methods/password_expiry.js +0 -151
  151. package/lib/methods/password_expiry.js.map +0 -1
  152. package/lib/methods/pls.d.ts +0 -1
  153. package/lib/methods/pls.js +0 -217
  154. package/lib/methods/pls.js.map +0 -1
  155. package/lib/methods/task.d.ts +0 -7
  156. package/lib/methods/task.js +0 -317
  157. package/lib/methods/task.js.map +0 -1
  158. package/lib/methods/urgent.d.ts +0 -20
  159. package/lib/methods/urgent.js +0 -259
  160. package/lib/methods/urgent.js.map +0 -1
@@ -1,583 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var consts_1 = require("../consts");
5
- var approval_engine_1 = require("../approval_engine");
6
- jest.mock('../AI', function () { return ({ callAIReview: jest.fn() }); });
7
- jest.mock('../notification', function () { return ({ sendNotifications: jest.fn() }); });
8
- jest.mock('../agent', function () { return ({
9
- getReviewerAgentsInfo: jest.fn().mockResolvedValue({ userIds: ['agent-1'], clientUserIds: [] }),
10
- }); });
11
- jest.mock('../content_hub', function () { return ({ inventoryApprovalMaterial: jest.fn() }); });
12
- jest.mock('../image_comparison', function () { return ({ isModifiedSubmission: jest.fn().mockResolvedValue(false) }); });
13
- jest.mock('../material', function () { return (tslib_1.__assign(tslib_1.__assign({}, jest.requireActual('../material')), { getApproverFieldByType: jest.requireActual('../material').getApproverFieldByType, getUserReviewedAllMaterialsStatus: jest.fn().mockResolvedValue(consts_1.ApprovalStatus.approved), uploadBulkDocToOneDrive: jest.fn(), downloadBulkFromOneDriveDoc: jest.fn(), getOneDriveMaterials: jest.fn().mockResolvedValue([]), getPendingUploadsToOneDriveMaterials: jest.fn().mockResolvedValue([]), deleteBulkDocOneDriveShareLink: jest.fn() })); });
14
- jest.mock('../../const', function () { return ({
15
- DCO_TYPES: ['MD-PO1-PO18'],
16
- }); });
17
- function makeMaterialApproval(overrides) {
18
- if (overrides === void 0) { overrides = {}; }
19
- return tslib_1.__assign({ _id: 'test-approval-id', classification: 'Brand KV', social_media: '', followers: 0, kol_classification: '', brief_flow_number: '', brief_flow: '', autonumber: '', name: 'Test Approval', product: 'Test Product', material_type: '', campaign_type: '', launch_time: '', available_channels: '', communication_context: '', content_rule: '', custom_tags: '', expiry_date: '', effective_date: '', bgm: '', subtitles: '', music_copyright: '', font_copyright: '', copyright_music: '', copyright_front: '', material_owner: '', child_files: 'no', kids_reviewer: '', kids_approval_status: '', kids_file_name: '', materials_quantity: 0, reviewer: [], assistance: '', approval_status: '', approval_materials_quantity: 0, ns_reviewer: ['ns-user-1'], ns_assistance: '', ns_approval_status: '', ns_materials_quantity: 0, legal_reviewer: ['legal-user-1'], legal_assistance: '', legal_approval_status: '', legal_materials_quantity: 0, sra_reviewer: ['sra-user-1'], sra_assistance: '', sra_approval_status: '', sra_materials_quantity: 0, ca_reviewer: ['ca-user-1'], ca_assistance: '', ca_approval_status: '', ca_materials_quantity: 0, owner: 'owner-user-1', current_step: consts_1.Step.draft, owner_department: '', review_status: '', person_pending_approve: '', person_view: '', person_approved: '', launch: '', postpone_launch_date: '', aunch_time: '', instance_state: '', space: 'test-space', materials_uploaded_to_onedrive_status: '', materials_xml_to_word_status: '', material_owner_id: '', external_submitted: false, is_external: false, internal_collaborator: '', is_skip_approver: false, pepsico_flow_rule: 'rule-1', shop_tag: '', pre_reviewer: '', pre_ns_reviewer: '', pre_sra_reviewer: '', pre_ca_reviewer: '', pre_legal_reviewer: '', pre_approval_status: '', pre_ns_approval_status: '', pre_sra_approval_status: '', pre_ca_approval_status: '', pre_legal_approval_status: '' }, overrides);
20
- }
21
- function createMockDB(options) {
22
- var _this = this;
23
- if (options === void 0) { options = {}; }
24
- var ruleFormula = options.ruleFormula || '${false}';
25
- var approvalRecords = {};
26
- var processRecords = [];
27
- var getObject = function (name) {
28
- if (name === 'pepsico_material_approval') {
29
- return {
30
- findOne: jest.fn(function (id) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
31
- return [2, approvalRecords[id]];
32
- }); }); }),
33
- update: jest.fn(function (id, data) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
34
- return tslib_1.__generator(this, function (_a) {
35
- approvalRecords[id] = tslib_1.__assign(tslib_1.__assign({}, approvalRecords[id]), data);
36
- return [2, approvalRecords[id]];
37
- });
38
- }); }),
39
- directUpdate: jest.fn(function (id, data) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
40
- return tslib_1.__generator(this, function (_a) {
41
- approvalRecords[id] = tslib_1.__assign(tslib_1.__assign({}, approvalRecords[id]), data);
42
- return [2, approvalRecords[id]];
43
- });
44
- }); }),
45
- find: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
46
- return [2, Object.values(approvalRecords)];
47
- }); }); }),
48
- };
49
- }
50
- if (name === 'pepsico_approval_process') {
51
- return {
52
- find: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
53
- return [2, processRecords];
54
- }); }); }),
55
- insert: jest.fn(function (data) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
56
- processRecords.push(data);
57
- return [2, data];
58
- }); }); }),
59
- update: jest.fn(function (id, data) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
60
- var idx;
61
- return tslib_1.__generator(this, function (_a) {
62
- idx = processRecords.findIndex(function (p) { return p._id === id; });
63
- if (idx >= 0)
64
- processRecords[idx] = tslib_1.__assign(tslib_1.__assign({}, processRecords[idx]), data);
65
- return [2, processRecords[idx]];
66
- });
67
- }); }),
68
- directUpdate: jest.fn(function (id, data) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
69
- var idx;
70
- return tslib_1.__generator(this, function (_a) {
71
- idx = processRecords.findIndex(function (p) { return p._id === id; });
72
- if (idx >= 0)
73
- processRecords[idx] = tslib_1.__assign(tslib_1.__assign({}, processRecords[idx]), data);
74
- return [2, processRecords[idx]];
75
- });
76
- }); }),
77
- count: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
78
- return [2, processRecords.length];
79
- }); }); }),
80
- };
81
- }
82
- if (name === 'pepsico_flow_rule') {
83
- return {
84
- findOne: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
85
- return tslib_1.__generator(this, function (_a) {
86
- return [2, ({
87
- _id: 'rule-1',
88
- name: ruleFormula,
89
- skip_approve: null,
90
- })];
91
- });
92
- }); }),
93
- find: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
94
- return tslib_1.__generator(this, function (_a) {
95
- return [2, [{
96
- _id: 'rule-1',
97
- name: ruleFormula,
98
- skip_approve: null,
99
- }]];
100
- });
101
- }); }),
102
- };
103
- }
104
- if (name === 'pepsico_material') {
105
- return {
106
- find: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
107
- return [2, []];
108
- }); }); }),
109
- directFind: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
110
- return [2, []];
111
- }); }); }),
112
- };
113
- }
114
- return {
115
- find: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
116
- return [2, []];
117
- }); }); }),
118
- findOne: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
119
- return [2, null];
120
- }); }); }),
121
- update: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
122
- return [2, null];
123
- }); }); }),
124
- directUpdate: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
125
- return [2, null];
126
- }); }); }),
127
- insert: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
128
- return [2, null];
129
- }); }); }),
130
- count: jest.fn(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
131
- return [2, 0];
132
- }); }); }),
133
- };
134
- };
135
- return { approvalRecords: approvalRecords, processRecords: processRecords, getObject: getObject };
136
- }
137
- function createMockCtx(userId, db, options) {
138
- if (userId === void 0) { userId = 'user-1'; }
139
- var mockDB = db || createMockDB(options);
140
- return {
141
- ctx: {
142
- meta: {
143
- user: {
144
- userId: userId,
145
- name: 'Test User',
146
- is_space_admin: false,
147
- organization: { _id: 'org-1' },
148
- },
149
- },
150
- getObject: mockDB.getObject,
151
- },
152
- db: mockDB,
153
- };
154
- }
155
- describe('submitPreReviewContent', function () {
156
- describe('validation', function () {
157
- test('throws on invalid approval status', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
158
- var ctx;
159
- return tslib_1.__generator(this, function (_a) {
160
- switch (_a.label) {
161
- case 0:
162
- ctx = createMockCtx().ctx;
163
- return [4, expect((0, approval_engine_1.submitPreReviewContent)(ctx, 'test-id', 'invalid')).rejects.toThrow('无效的审核状态')];
164
- case 1:
165
- _a.sent();
166
- return [2];
167
- }
168
- });
169
- }); });
170
- test('throws when current_step is not pre_review', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
171
- var _a, ctx, db, approval;
172
- return tslib_1.__generator(this, function (_b) {
173
- switch (_b.label) {
174
- case 0:
175
- _a = createMockCtx('pre-user-1'), ctx = _a.ctx, db = _a.db;
176
- approval = makeMaterialApproval({
177
- current_step: consts_1.Step.departmental_review,
178
- person_pending_approve: 'pre-user-1',
179
- pre_reviewer: 'pre-user-1',
180
- });
181
- db.approvalRecords['test-id'] = approval;
182
- return [4, expect((0, approval_engine_1.submitPreReviewContent)(ctx, 'test-id', consts_1.ApprovalStatus.approved)).rejects.toThrow('当前步骤不是预审步骤')];
183
- case 1:
184
- _b.sent();
185
- return [2];
186
- }
187
- });
188
- }); });
189
- test('throws when user is not a pending pre-reviewer', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
190
- var _a, ctx, db, approval;
191
- return tslib_1.__generator(this, function (_b) {
192
- switch (_b.label) {
193
- case 0:
194
- _a = createMockCtx('wrong-user'), ctx = _a.ctx, db = _a.db;
195
- approval = makeMaterialApproval({
196
- current_step: consts_1.Step.pre_review,
197
- person_pending_approve: ['pre-user-1'],
198
- pre_reviewer: 'pre-user-1',
199
- });
200
- db.approvalRecords['test-id'] = approval;
201
- return [4, expect((0, approval_engine_1.submitPreReviewContent)(ctx, 'test-id', consts_1.ApprovalStatus.approved)).rejects.toThrow('您不是当前预审人')];
202
- case 1:
203
- _b.sent();
204
- return [2];
205
- }
206
- });
207
- }); });
208
- test('throws when user cannot be mapped to a pre-review field', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
209
- var _a, ctx, db, approval;
210
- return tslib_1.__generator(this, function (_b) {
211
- switch (_b.label) {
212
- case 0:
213
- _a = createMockCtx('unknown-pre-user'), ctx = _a.ctx, db = _a.db;
214
- approval = makeMaterialApproval({
215
- current_step: consts_1.Step.pre_review,
216
- person_pending_approve: ['unknown-pre-user'],
217
- });
218
- db.approvalRecords['test-id'] = approval;
219
- return [4, expect((0, approval_engine_1.submitPreReviewContent)(ctx, 'test-id', consts_1.ApprovalStatus.approved)).rejects.toThrow('无法确定预审字段')];
220
- case 1:
221
- _b.sent();
222
- return [2];
223
- }
224
- });
225
- }); });
226
- });
227
- describe('field mapping', function () {
228
- test('maps pre_reviewer user to pre_approval_status field', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
229
- var _a, ctx, db, approval, e_1;
230
- return tslib_1.__generator(this, function (_b) {
231
- switch (_b.label) {
232
- case 0:
233
- _a = createMockCtx('pre-user-1'), ctx = _a.ctx, db = _a.db;
234
- approval = makeMaterialApproval({
235
- _id: 'test-id',
236
- current_step: consts_1.Step.pre_review,
237
- person_pending_approve: ['pre-user-1'],
238
- pre_reviewer: 'pre-user-1',
239
- pre_approval_status: '',
240
- });
241
- db.approvalRecords['test-id'] = approval;
242
- _b.label = 1;
243
- case 1:
244
- _b.trys.push([1, 3, , 4]);
245
- return [4, (0, approval_engine_1.submitPreReviewContent)(ctx, 'test-id', consts_1.ApprovalStatus.approved)];
246
- case 2:
247
- _b.sent();
248
- return [3, 4];
249
- case 3:
250
- e_1 = _b.sent();
251
- expect(e_1.message).not.toContain('无法确定预审字段');
252
- return [3, 4];
253
- case 4: return [2];
254
- }
255
- });
256
- }); });
257
- test('maps pre_ns_reviewer user to pre_ns_approval_status field', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
258
- var _a, ctx, db, approval, e_2;
259
- return tslib_1.__generator(this, function (_b) {
260
- switch (_b.label) {
261
- case 0:
262
- _a = createMockCtx('pre-ns-user'), ctx = _a.ctx, db = _a.db;
263
- approval = makeMaterialApproval({
264
- _id: 'test-id',
265
- current_step: consts_1.Step.pre_review,
266
- person_pending_approve: ['pre-ns-user'],
267
- pre_ns_reviewer: 'pre-ns-user',
268
- });
269
- db.approvalRecords['test-id'] = approval;
270
- _b.label = 1;
271
- case 1:
272
- _b.trys.push([1, 3, , 4]);
273
- return [4, (0, approval_engine_1.submitPreReviewContent)(ctx, 'test-id', consts_1.ApprovalStatus.approved)];
274
- case 2:
275
- _b.sent();
276
- return [3, 4];
277
- case 3:
278
- e_2 = _b.sent();
279
- expect(e_2.message).not.toContain('无法确定预审字段');
280
- return [3, 4];
281
- case 4: return [2];
282
- }
283
- });
284
- }); });
285
- test('maps pre_legal_reviewer user to pre_legal_approval_status field', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
286
- var _a, ctx, db, approval, e_3;
287
- return tslib_1.__generator(this, function (_b) {
288
- switch (_b.label) {
289
- case 0:
290
- _a = createMockCtx('pre-legal-user'), ctx = _a.ctx, db = _a.db;
291
- approval = makeMaterialApproval({
292
- _id: 'test-id',
293
- current_step: consts_1.Step.pre_review,
294
- person_pending_approve: ['pre-legal-user'],
295
- pre_legal_reviewer: 'pre-legal-user',
296
- });
297
- db.approvalRecords['test-id'] = approval;
298
- _b.label = 1;
299
- case 1:
300
- _b.trys.push([1, 3, , 4]);
301
- return [4, (0, approval_engine_1.submitPreReviewContent)(ctx, 'test-id', consts_1.ApprovalStatus.approved)];
302
- case 2:
303
- _b.sent();
304
- return [3, 4];
305
- case 3:
306
- e_3 = _b.sent();
307
- expect(e_3.message).not.toContain('无法确定预审字段');
308
- return [3, 4];
309
- case 4: return [2];
310
- }
311
- });
312
- }); });
313
- test('maps pre_sra_reviewer user to pre_sra_approval_status field', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
314
- var _a, ctx, db, approval, e_4;
315
- return tslib_1.__generator(this, function (_b) {
316
- switch (_b.label) {
317
- case 0:
318
- _a = createMockCtx('pre-sra-user'), ctx = _a.ctx, db = _a.db;
319
- approval = makeMaterialApproval({
320
- _id: 'test-id',
321
- current_step: consts_1.Step.pre_review,
322
- person_pending_approve: ['pre-sra-user'],
323
- pre_sra_reviewer: 'pre-sra-user',
324
- });
325
- db.approvalRecords['test-id'] = approval;
326
- _b.label = 1;
327
- case 1:
328
- _b.trys.push([1, 3, , 4]);
329
- return [4, (0, approval_engine_1.submitPreReviewContent)(ctx, 'test-id', consts_1.ApprovalStatus.approved)];
330
- case 2:
331
- _b.sent();
332
- return [3, 4];
333
- case 3:
334
- e_4 = _b.sent();
335
- expect(e_4.message).not.toContain('无法确定预审字段');
336
- return [3, 4];
337
- case 4: return [2];
338
- }
339
- });
340
- }); });
341
- test('maps pre_ca_reviewer user to pre_ca_approval_status field', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
342
- var _a, ctx, db, approval, e_5;
343
- return tslib_1.__generator(this, function (_b) {
344
- switch (_b.label) {
345
- case 0:
346
- _a = createMockCtx('pre-ca-user'), ctx = _a.ctx, db = _a.db;
347
- approval = makeMaterialApproval({
348
- _id: 'test-id',
349
- current_step: consts_1.Step.pre_review,
350
- person_pending_approve: ['pre-ca-user'],
351
- pre_ca_reviewer: 'pre-ca-user',
352
- });
353
- db.approvalRecords['test-id'] = approval;
354
- _b.label = 1;
355
- case 1:
356
- _b.trys.push([1, 3, , 4]);
357
- return [4, (0, approval_engine_1.submitPreReviewContent)(ctx, 'test-id', consts_1.ApprovalStatus.approved)];
358
- case 2:
359
- _b.sent();
360
- return [3, 4];
361
- case 3:
362
- e_5 = _b.sent();
363
- expect(e_5.message).not.toContain('无法确定预审字段');
364
- return [3, 4];
365
- case 4: return [2];
366
- }
367
- });
368
- }); });
369
- test('delegates can be resolved via approval_process record type', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
370
- var _a, ctx, db, approval, e_6;
371
- return tslib_1.__generator(this, function (_b) {
372
- switch (_b.label) {
373
- case 0:
374
- _a = createMockCtx('delegate-user'), ctx = _a.ctx, db = _a.db;
375
- approval = makeMaterialApproval({
376
- _id: 'test-id',
377
- current_step: consts_1.Step.pre_review,
378
- person_pending_approve: ['delegate-user'],
379
- });
380
- db.approvalRecords['test-id'] = approval;
381
- db.processRecords.push({
382
- _id: 'process-1',
383
- owner: 'delegate-user',
384
- pepsico_material_approval: 'test-id',
385
- current_step: consts_1.Step.pre_review,
386
- space: 'test-space',
387
- approved: 'progess',
388
- type: consts_1.ProcessApprovalType.PreNS,
389
- });
390
- _b.label = 1;
391
- case 1:
392
- _b.trys.push([1, 3, , 4]);
393
- return [4, (0, approval_engine_1.submitPreReviewContent)(ctx, 'test-id', consts_1.ApprovalStatus.approved)];
394
- case 2:
395
- _b.sent();
396
- return [3, 4];
397
- case 3:
398
- e_6 = _b.sent();
399
- expect(e_6.message).not.toContain('无法确定预审字段');
400
- return [3, 4];
401
- case 4: return [2];
402
- }
403
- });
404
- }); });
405
- });
406
- });
407
- describe('approvalContent — pre-review step', function () {
408
- test('personnel pre-review: approves and advances to personnel_review', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
409
- var db, ctx, approval, result;
410
- return tslib_1.__generator(this, function (_a) {
411
- switch (_a.label) {
412
- case 0:
413
- db = createMockDB({ ruleFormula: '${true}' });
414
- ctx = createMockCtx('pre-user-1', db).ctx;
415
- approval = makeMaterialApproval({
416
- _id: 'test-id',
417
- current_step: consts_1.Step.pre_review,
418
- person_pending_approve: ['pre-user-1'],
419
- pre_reviewer: 'pre-user-1',
420
- pre_approval_status: '',
421
- pepsico_flow_rule: 'rule-1',
422
- });
423
- db.approvalRecords['test-id'] = approval;
424
- return [4, approval_engine_1.approvalContent.call({}, ctx, 'test-id', { approveField: 'pre_approval_status' })];
425
- case 1:
426
- result = _a.sent();
427
- expect(result).toEqual({});
428
- expect(db.approvalRecords['test-id'].current_step).toBe(consts_1.Step.personnel_review);
429
- return [2];
430
- }
431
- });
432
- }); });
433
- test('departmental pre-review: waits for all pre-reviewers to complete', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
434
- var db, ctx, approval, result;
435
- return tslib_1.__generator(this, function (_a) {
436
- switch (_a.label) {
437
- case 0:
438
- db = createMockDB({ ruleFormula: '${false}' });
439
- ctx = createMockCtx('pre-ns-user', db).ctx;
440
- approval = makeMaterialApproval({
441
- _id: 'test-id',
442
- current_step: consts_1.Step.pre_review,
443
- person_pending_approve: ['pre-ns-user', 'pre-ca-user'],
444
- pre_ns_reviewer: 'pre-ns-user',
445
- pre_ns_approval_status: '',
446
- pre_ca_reviewer: 'pre-ca-user',
447
- pre_ca_approval_status: '',
448
- pepsico_flow_rule: 'rule-1',
449
- });
450
- db.approvalRecords['test-id'] = approval;
451
- return [4, approval_engine_1.approvalContent.call({}, ctx, 'test-id', { approveField: 'pre_ns_approval_status' })];
452
- case 1:
453
- result = _a.sent();
454
- expect(result).toEqual({});
455
- return [2];
456
- }
457
- });
458
- }); });
459
- });
460
- describe('rejectContent — pre-review step', function () {
461
- test('departmental pre-review rejection: waits for all pre-reviewers', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
462
- var db, ctx, approval, result;
463
- return tslib_1.__generator(this, function (_a) {
464
- switch (_a.label) {
465
- case 0:
466
- db = createMockDB({ ruleFormula: '${false}' });
467
- ctx = createMockCtx('pre-ns-user', db).ctx;
468
- approval = makeMaterialApproval({
469
- _id: 'test-id',
470
- current_step: consts_1.Step.pre_review,
471
- person_pending_approve: ['pre-ns-user', 'pre-ca-user'],
472
- pre_ns_reviewer: 'pre-ns-user',
473
- pre_ns_approval_status: '',
474
- pre_ca_reviewer: 'pre-ca-user',
475
- pre_ca_approval_status: '',
476
- pepsico_flow_rule: 'rule-1',
477
- });
478
- db.approvalRecords['test-id'] = approval;
479
- return [4, approval_engine_1.rejectContent.call({}, ctx, 'test-id', { approveField: 'pre_ns_approval_status' })];
480
- case 1:
481
- result = _a.sent();
482
- expect(result).toEqual({});
483
- return [2];
484
- }
485
- });
486
- }); });
487
- });
488
- describe('Pre-review departmental aggregation', function () {
489
- test('all departments approved → proceeds to departmental_review (approved)', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
490
- var db, ctx, approval, result, updatedRecord;
491
- return tslib_1.__generator(this, function (_a) {
492
- switch (_a.label) {
493
- case 0:
494
- db = createMockDB({ ruleFormula: '${false}' });
495
- ctx = createMockCtx('pre-ns-user', db).ctx;
496
- approval = makeMaterialApproval({
497
- _id: 'test-id',
498
- current_step: consts_1.Step.pre_review,
499
- person_pending_approve: ['pre-ns-user'],
500
- pre_ns_reviewer: 'pre-ns-user',
501
- pre_ns_approval_status: '',
502
- pre_ca_reviewer: 'pre-ca-user',
503
- pre_ca_approval_status: true,
504
- pepsico_flow_rule: 'rule-1',
505
- });
506
- db.approvalRecords['test-id'] = approval;
507
- return [4, approval_engine_1.approvalContent.call({}, ctx, 'test-id', { approveField: 'pre_ns_approval_status' })];
508
- case 1:
509
- result = _a.sent();
510
- expect(result).toEqual({});
511
- updatedRecord = db.approvalRecords['test-id'];
512
- expect(updatedRecord.current_step).toBe(consts_1.Step.departmental_review);
513
- return [2];
514
- }
515
- });
516
- }); });
517
- test('some departments rejected → marks rejected depts, advances if others can proceed', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
518
- var db, ctx, approval, result, updated;
519
- return tslib_1.__generator(this, function (_a) {
520
- switch (_a.label) {
521
- case 0:
522
- db = createMockDB({ ruleFormula: '${false}' });
523
- ctx = createMockCtx('pre-ca-user', db).ctx;
524
- approval = makeMaterialApproval({
525
- _id: 'test-id',
526
- current_step: consts_1.Step.pre_review,
527
- person_pending_approve: ['pre-ca-user'],
528
- pre_ns_reviewer: 'pre-ns-user',
529
- pre_ns_approval_status: true,
530
- pre_ca_reviewer: 'pre-ca-user',
531
- pre_ca_approval_status: '',
532
- pepsico_flow_rule: 'rule-1',
533
- });
534
- db.approvalRecords['test-id'] = approval;
535
- return [4, approval_engine_1.rejectContent.call({}, ctx, 'test-id', { approveField: 'pre_ca_approval_status' })];
536
- case 1:
537
- result = _a.sent();
538
- expect(result).toEqual({});
539
- updated = db.approvalRecords['test-id'];
540
- expect(updated.ca_approval_status).toBe(false);
541
- expect(updated.current_step).toBe(consts_1.Step.departmental_review);
542
- return [2];
543
- }
544
- });
545
- }); });
546
- test('all departments rejected and no non-pre-review depts → rejects to submitter_revisions', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
547
- var db, ctx, approval, result, updated;
548
- return tslib_1.__generator(this, function (_a) {
549
- switch (_a.label) {
550
- case 0:
551
- db = createMockDB({ ruleFormula: '${false}' });
552
- ctx = createMockCtx('pre-ca-user', db).ctx;
553
- approval = makeMaterialApproval({
554
- _id: 'test-id',
555
- current_step: consts_1.Step.pre_review,
556
- person_pending_approve: ['pre-ca-user'],
557
- pre_ns_reviewer: 'pre-ns-user',
558
- pre_ns_approval_status: false,
559
- pre_legal_reviewer: 'pre-legal-user',
560
- pre_legal_approval_status: false,
561
- pre_sra_reviewer: 'pre-sra-user',
562
- pre_sra_approval_status: false,
563
- pre_ca_reviewer: 'pre-ca-user',
564
- pre_ca_approval_status: '',
565
- pepsico_flow_rule: 'rule-1',
566
- });
567
- db.approvalRecords['test-id'] = approval;
568
- return [4, approval_engine_1.rejectContent.call({}, ctx, 'test-id', { approveField: 'pre_ca_approval_status' })];
569
- case 1:
570
- result = _a.sent();
571
- expect(result).toEqual({});
572
- updated = db.approvalRecords['test-id'];
573
- expect(updated.ns_approval_status).toBe(false);
574
- expect(updated.legal_approval_status).toBe(false);
575
- expect(updated.sra_approval_status).toBe(false);
576
- expect(updated.ca_approval_status).toBe(false);
577
- expect(updated.current_step).toBe(consts_1.Step.submitter_revisions);
578
- return [2];
579
- }
580
- });
581
- }); });
582
- });
583
- //# sourceMappingURL=pre_review_flow.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pre_review_flow.test.js","sourceRoot":"","sources":["../../../src/methods/__tests__/pre_review_flow.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};