@steedos-labs/content-compliance 0.8.21 → 0.8.23
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/index.js +1 -1
- package/lib/actions/addBulkMaterials.d.ts +1 -9
- package/lib/actions/addBulkMaterials.js +56 -24
- package/lib/actions/addBulkMaterials.js.map +1 -1
- package/lib/methods/__tests__/materialSizeLimit.test.d.ts +1 -0
- package/lib/methods/__tests__/materialSizeLimit.test.js +146 -0
- package/lib/methods/__tests__/materialSizeLimit.test.js.map +1 -0
- package/lib/methods/__tests__/materialUploadValidation.test.d.ts +1 -0
- package/lib/methods/__tests__/materialUploadValidation.test.js +217 -0
- package/lib/methods/__tests__/materialUploadValidation.test.js.map +1 -0
- package/lib/methods/__tests__/qcParallelReview.test.js +10 -3
- package/lib/methods/__tests__/qcParallelReview.test.js.map +1 -1
- package/lib/methods/__tests__/resubmissionAutoApprove.test.d.ts +1 -0
- package/lib/methods/__tests__/resubmissionAutoApprove.test.js +195 -0
- package/lib/methods/__tests__/resubmissionAutoApprove.test.js.map +1 -0
- package/lib/methods/approval_engine.d.ts +1 -0
- package/lib/methods/approval_engine.js +324 -281
- package/lib/methods/approval_engine.js.map +1 -1
- package/lib/methods/material.d.ts +1 -0
- package/lib/methods/material.js +21 -2
- package/lib/methods/material.js.map +1 -1
- package/main/default/objects/pepsico_material/buttons/pepsico_upload_supplement.button.yml +1 -1
- package/main/default/objects/pepsico_material_approval/buttons/pepsico_material_upload.button.yml +2 -2
- package/main/default/objects/pepsico_material_approval/listviews/collaboration.listview.yml +5 -0
- package/main/default/pages/pepsico_content_review_detail.page.amis.json +15 -15
- package/package.json +3 -2
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var approval_engine_1 = require("../approval_engine");
|
|
5
|
+
var consts_1 = require("../consts");
|
|
6
|
+
var buildCtx = function (_a) {
|
|
7
|
+
var approval = _a.approval, _b = _a.materials, materials = _b === void 0 ? [] : _b, _c = _a.flowRule, flowRule = _c === void 0 ? null : _c, _d = _a.delegations, delegations = _d === void 0 ? {} : _d;
|
|
8
|
+
var objects = {};
|
|
9
|
+
var rule = flowRule || { _id: 'rule-1', name: '${1 == 2}', skip_approve: '' };
|
|
10
|
+
var getOrCreate = function (name) {
|
|
11
|
+
if (objects[name]) {
|
|
12
|
+
return objects[name];
|
|
13
|
+
}
|
|
14
|
+
var stub = {
|
|
15
|
+
find: jest.fn().mockResolvedValue([]),
|
|
16
|
+
findOne: jest.fn().mockResolvedValue(null),
|
|
17
|
+
directFind: jest.fn().mockResolvedValue([]),
|
|
18
|
+
insert: jest.fn().mockResolvedValue({}),
|
|
19
|
+
update: jest.fn().mockResolvedValue({}),
|
|
20
|
+
count: jest.fn().mockResolvedValue(1),
|
|
21
|
+
directInsert: jest.fn().mockResolvedValue({}),
|
|
22
|
+
directUpdate: jest.fn().mockResolvedValue({}),
|
|
23
|
+
directUpdateMany: jest.fn().mockResolvedValue({})
|
|
24
|
+
};
|
|
25
|
+
if (name === 'pepsico_material_approval') {
|
|
26
|
+
stub.findOne = jest.fn().mockResolvedValue(approval);
|
|
27
|
+
}
|
|
28
|
+
if (name === 'pepsico_material') {
|
|
29
|
+
stub.find = jest.fn().mockResolvedValue(materials);
|
|
30
|
+
}
|
|
31
|
+
if (name === 'pepsico_flow_rule') {
|
|
32
|
+
stub.findOne = jest.fn().mockResolvedValue(rule);
|
|
33
|
+
stub.find = jest.fn().mockResolvedValue([rule]);
|
|
34
|
+
}
|
|
35
|
+
if (name === 'process_delegation_rules') {
|
|
36
|
+
stub.find = jest.fn().mockImplementation(function (_a) {
|
|
37
|
+
var _b;
|
|
38
|
+
var filters = _a.filters;
|
|
39
|
+
var fromId = (_b = filters.find(function (f) { return f[0] === 'from'; })) === null || _b === void 0 ? void 0 : _b[2];
|
|
40
|
+
var to = delegations[fromId];
|
|
41
|
+
return Promise.resolve(to ? [{ to: to }] : []);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
objects[name] = stub;
|
|
45
|
+
return stub;
|
|
46
|
+
};
|
|
47
|
+
var ctx = {
|
|
48
|
+
meta: { user: { userId: 'submitter-u', organization: { _id: 'org-1' } } },
|
|
49
|
+
broker: { call: jest.fn().mockResolvedValue({}) },
|
|
50
|
+
getObject: jest.fn(function (name) { return getOrCreate(name); })
|
|
51
|
+
};
|
|
52
|
+
return { ctx: ctx, objects: getOrCreate };
|
|
53
|
+
};
|
|
54
|
+
var directUpdateDocs = function (stub) { return stub.directUpdate.mock.calls.map(function (c) { return c[1]; }); };
|
|
55
|
+
describe('resubmission auto approve converts pre review to formal review (#435)', function () {
|
|
56
|
+
var baseApproval = {
|
|
57
|
+
_id: 'ap-1',
|
|
58
|
+
space: 'spc',
|
|
59
|
+
name: 'AP-1',
|
|
60
|
+
current_step: consts_1.Step.submitter_revisions,
|
|
61
|
+
person_pending_approve: ['submitter-u'],
|
|
62
|
+
ec_has_detail_page: 'yes',
|
|
63
|
+
ns_approval_status: true,
|
|
64
|
+
legal_approval_status: true,
|
|
65
|
+
sra_approval_status: true,
|
|
66
|
+
ca_approval_status: true,
|
|
67
|
+
pre_qc_reviewer: 'preqc-u',
|
|
68
|
+
pre_qc_approval_status: false,
|
|
69
|
+
qc_reviewer: ['qc-u'],
|
|
70
|
+
qc_approval_status: '',
|
|
71
|
+
pls_km_files: []
|
|
72
|
+
};
|
|
73
|
+
it('assigns the formal QC reviewer instead of skipping the department', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
74
|
+
var approval, _a, ctx, objects, approvalStub, processStub, setDoc, inserted;
|
|
75
|
+
var _b;
|
|
76
|
+
return tslib_1.__generator(this, function (_c) {
|
|
77
|
+
switch (_c.label) {
|
|
78
|
+
case 0:
|
|
79
|
+
approval = tslib_1.__assign({}, baseApproval);
|
|
80
|
+
_a = buildCtx({ ctx: null, approval: approval, materials: [{ _id: 'm-2', pre_qc_approval_status: true }] }), ctx = _a.ctx, objects = _a.objects;
|
|
81
|
+
return [4, (0, approval_engine_1.advanceApproval)(ctx, 'ap-1', consts_1.ApprovalStatus.approved)];
|
|
82
|
+
case 1:
|
|
83
|
+
_c.sent();
|
|
84
|
+
approvalStub = objects('pepsico_material_approval');
|
|
85
|
+
processStub = objects('pepsico_approval_process');
|
|
86
|
+
expect(directUpdateDocs(approvalStub)).toContainEqual({ pre_qc_approval_status: true });
|
|
87
|
+
setDoc = (_b = approvalStub.update.mock.calls.find(function (c) { return c[0] === 'ap-1'; })) === null || _b === void 0 ? void 0 : _b[1];
|
|
88
|
+
expect(setDoc.current_step).toBe(consts_1.Step.departmental_review);
|
|
89
|
+
expect(setDoc.person_pending_approve).toEqual(['qc-u']);
|
|
90
|
+
inserted = processStub.insert.mock.calls.map(function (c) { return c[0]; });
|
|
91
|
+
expect(inserted).toEqual([
|
|
92
|
+
expect.objectContaining({ type: consts_1.ProcessApprovalType.QC, owner: 'qc-u', approved: 'progess' })
|
|
93
|
+
]);
|
|
94
|
+
expect(directUpdateDocs(approvalStub)).toContainEqual({ handler_qc: ['qc-u'] });
|
|
95
|
+
expect(directUpdateDocs(approvalStub)).toContainEqual({ qc_approval_status: '' });
|
|
96
|
+
return [2];
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}); });
|
|
100
|
+
it('throws and leaves no half-written state when the formal reviewer is missing', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
101
|
+
var approval, _a, ctx, objects, approvalStub;
|
|
102
|
+
return tslib_1.__generator(this, function (_b) {
|
|
103
|
+
switch (_b.label) {
|
|
104
|
+
case 0:
|
|
105
|
+
approval = tslib_1.__assign(tslib_1.__assign({}, baseApproval), { ec_has_detail_page: 'no', pre_qc_reviewer: null, pre_qc_approval_status: '', pre_sra_reviewer: 'presra-u', pre_sra_approval_status: false, sra_approval_status: '', sra_reviewer: [] });
|
|
106
|
+
_a = buildCtx({ approval: approval, materials: [{ _id: 'm-2', pre_sra_approval_status: true }] }), ctx = _a.ctx, objects = _a.objects;
|
|
107
|
+
return [4, expect((0, approval_engine_1.advanceApproval)(ctx, 'ap-1', consts_1.ApprovalStatus.approved)).rejects.toThrow('正式审核人缺失')];
|
|
108
|
+
case 1:
|
|
109
|
+
_b.sent();
|
|
110
|
+
approvalStub = objects('pepsico_material_approval');
|
|
111
|
+
expect(directUpdateDocs(approvalStub)).not.toContainEqual({ pre_sra_approval_status: true });
|
|
112
|
+
expect(approvalStub.update).not.toHaveBeenCalled();
|
|
113
|
+
return [2];
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}); });
|
|
117
|
+
it('runs the same auto-approve conversion when returning from AI re-review (#432)', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
118
|
+
var approval, _a, ctx, objects, approvalStub, processStub, setDoc;
|
|
119
|
+
var _b;
|
|
120
|
+
return tslib_1.__generator(this, function (_c) {
|
|
121
|
+
switch (_c.label) {
|
|
122
|
+
case 0:
|
|
123
|
+
approval = tslib_1.__assign(tslib_1.__assign({}, baseApproval), { current_step: consts_1.Step.ai_review });
|
|
124
|
+
_a = buildCtx({ approval: approval, materials: [{ _id: 'm-2', pre_qc_approval_status: true }] }), ctx = _a.ctx, objects = _a.objects;
|
|
125
|
+
return [4, (0, approval_engine_1.advanceApproval)(ctx, 'ap-1', consts_1.ApprovalStatus.approved)];
|
|
126
|
+
case 1:
|
|
127
|
+
_c.sent();
|
|
128
|
+
approvalStub = objects('pepsico_material_approval');
|
|
129
|
+
processStub = objects('pepsico_approval_process');
|
|
130
|
+
expect(directUpdateDocs(approvalStub)).toContainEqual({ pre_qc_approval_status: true });
|
|
131
|
+
setDoc = (_b = approvalStub.update.mock.calls.find(function (c) { return c[0] === 'ap-1'; })) === null || _b === void 0 ? void 0 : _b[1];
|
|
132
|
+
expect(setDoc.current_step).toBe(consts_1.Step.departmental_review);
|
|
133
|
+
expect(setDoc.person_pending_approve).toEqual(['qc-u']);
|
|
134
|
+
expect(processStub.insert.mock.calls.map(function (c) { return c[0]; })).toEqual([
|
|
135
|
+
expect.objectContaining({ type: consts_1.ProcessApprovalType.QC, owner: 'qc-u', approved: 'progess' })
|
|
136
|
+
]);
|
|
137
|
+
return [2];
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}); });
|
|
141
|
+
it('keeps pending reviewers untouched on a first submission through AI review', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
142
|
+
var approval, _a, ctx, objects, approvalStub, setDoc;
|
|
143
|
+
var _b;
|
|
144
|
+
return tslib_1.__generator(this, function (_c) {
|
|
145
|
+
switch (_c.label) {
|
|
146
|
+
case 0:
|
|
147
|
+
approval = tslib_1.__assign(tslib_1.__assign({}, baseApproval), { current_step: consts_1.Step.ai_review, ns_approval_status: '', legal_approval_status: '', sra_approval_status: '', ca_approval_status: '', ns_reviewer: ['ns-u'], legal_reviewer: ['legal-u'], sra_reviewer: ['sra-u'], ca_reviewer: ['ca-u'], pre_qc_approval_status: '' });
|
|
148
|
+
_a = buildCtx({ approval: approval, materials: [{ _id: 'm-1' }, { _id: 'm-2' }] }), ctx = _a.ctx, objects = _a.objects;
|
|
149
|
+
return [4, (0, approval_engine_1.advanceApproval)(ctx, 'ap-1', consts_1.ApprovalStatus.approved)];
|
|
150
|
+
case 1:
|
|
151
|
+
_c.sent();
|
|
152
|
+
approvalStub = objects('pepsico_material_approval');
|
|
153
|
+
setDoc = (_b = approvalStub.update.mock.calls.find(function (c) { return c[0] === 'ap-1'; })) === null || _b === void 0 ? void 0 : _b[1];
|
|
154
|
+
expect(setDoc.current_step).toBe(consts_1.Step.departmental_review);
|
|
155
|
+
expect(setDoc.person_pending_approve).toEqual(['ns-u', 'legal-u', 'sra-u', 'ca-u', 'preqc-u']);
|
|
156
|
+
expect(directUpdateDocs(approvalStub)).not.toContainEqual(expect.objectContaining({ pre_qc_approval_status: true }));
|
|
157
|
+
return [2];
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}); });
|
|
161
|
+
});
|
|
162
|
+
describe('pending approve keeps per-role slots (#434)', function () {
|
|
163
|
+
it('preserves the cross-role slot of a user while deduping within the appended role', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
164
|
+
var approval, _a, ctx, objects, approvalStub, processStub;
|
|
165
|
+
return tslib_1.__generator(this, function (_b) {
|
|
166
|
+
switch (_b.label) {
|
|
167
|
+
case 0:
|
|
168
|
+
approval = {
|
|
169
|
+
_id: 'ap-2',
|
|
170
|
+
space: 'spc',
|
|
171
|
+
name: 'AP-2',
|
|
172
|
+
current_step: consts_1.Step.departmental_review,
|
|
173
|
+
person_pending_approve: ['agent-u', 'other-u'],
|
|
174
|
+
qc_reviewer: ['r1', 'r2'],
|
|
175
|
+
qc_approval_status: ''
|
|
176
|
+
};
|
|
177
|
+
_a = buildCtx({ approval: approval, delegations: { r1: 'agent-u', r2: 'agent-u' } }), ctx = _a.ctx, objects = _a.objects;
|
|
178
|
+
return [4, (0, approval_engine_1.addFormalReviewerAfterPreApproval)(ctx, 'ap-2', 'pre_qc_approval_status', approval)];
|
|
179
|
+
case 1:
|
|
180
|
+
_b.sent();
|
|
181
|
+
approvalStub = objects('pepsico_material_approval');
|
|
182
|
+
processStub = objects('pepsico_approval_process');
|
|
183
|
+
expect(processStub.insert).toHaveBeenCalledTimes(1);
|
|
184
|
+
expect(processStub.insert.mock.calls[0][0]).toEqual(expect.objectContaining({ type: consts_1.ProcessApprovalType.QC, owner: 'agent-u' }));
|
|
185
|
+
expect(directUpdateDocs(approvalStub)).toContainEqual({ handler_qc: ['agent-u'] });
|
|
186
|
+
expect(directUpdateDocs(approvalStub)).toContainEqual({
|
|
187
|
+
person_pending_approve: ['agent-u', 'other-u', 'agent-u'],
|
|
188
|
+
qc_approval_status: ''
|
|
189
|
+
});
|
|
190
|
+
return [2];
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}); });
|
|
194
|
+
});
|
|
195
|
+
//# sourceMappingURL=resubmissionAutoApprove.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resubmissionAutoApprove.test.js","sourceRoot":"","sources":["../../../src/methods/__tests__/resubmissionAutoApprove.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export declare const isDeptReviewComplete: (materialApproval: MaterialApproval,
|
|
|
6
6
|
export declare const getDeptEffectiveStatus: (materialApproval: MaterialApproval, deptPrefix: string) => boolean | string;
|
|
7
7
|
export declare const needsQcReview: (materialApproval: MaterialApproval) => boolean;
|
|
8
8
|
export declare const needsPLSReReview: (materialApproval: MaterialApproval) => boolean;
|
|
9
|
+
export declare const addFormalReviewerAfterPreApproval: (ctx: any, recordId: string, approveField: string, materialApproval: MaterialApproval) => Promise<void>;
|
|
9
10
|
export declare const getPreReviewStatuses: (materialApproval: MaterialApproval) => {
|
|
10
11
|
dept: string;
|
|
11
12
|
status: boolean | string;
|