@steedos-labs/content-compliance 0.8.36 → 1.0.1

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 (177) hide show
  1. package/dist/index.js +1 -1
  2. package/lib/actions/contentHubMaterialGroups.d.ts +19 -0
  3. package/lib/actions/contentHubMaterialGroups.js +70 -0
  4. package/lib/actions/contentHubMaterialGroups.js.map +1 -0
  5. package/lib/actions/contentHubSyncPreview.d.ts +21 -0
  6. package/lib/actions/contentHubSyncPreview.js +51 -0
  7. package/lib/actions/contentHubSyncPreview.js.map +1 -0
  8. package/lib/actions/contentHubTagValues.d.ts +12 -0
  9. package/lib/actions/contentHubTagValues.js +70 -0
  10. package/lib/actions/contentHubTagValues.js.map +1 -0
  11. package/lib/actions/index.d.ts +3 -0
  12. package/lib/actions/index.js +3 -0
  13. package/lib/actions/index.js.map +1 -1
  14. package/lib/actions/sendToContentHub.js +1 -1
  15. package/lib/actions/sendToContentHub.js.map +1 -1
  16. package/lib/actions/spotCheckMaterial.js +2 -1
  17. package/lib/actions/spotCheckMaterial.js.map +1 -1
  18. package/lib/index.js +173 -30
  19. package/lib/index.js.map +1 -1
  20. package/lib/methods/__tests__/contentHubMaterialGroup.test.d.ts +1 -0
  21. package/lib/methods/__tests__/contentHubMaterialGroup.test.js +97 -0
  22. package/lib/methods/__tests__/contentHubMaterialGroup.test.js.map +1 -0
  23. package/lib/methods/__tests__/contentHubMaterialGroupRule.test.d.ts +1 -0
  24. package/lib/methods/__tests__/contentHubMaterialGroupRule.test.js +168 -0
  25. package/lib/methods/__tests__/contentHubMaterialGroupRule.test.js.map +1 -0
  26. package/lib/methods/__tests__/contentHubPush.test.d.ts +1 -0
  27. package/lib/methods/__tests__/contentHubPush.test.js +568 -0
  28. package/lib/methods/__tests__/contentHubPush.test.js.map +1 -0
  29. package/lib/methods/__tests__/contentHubSyncRule.test.d.ts +1 -0
  30. package/lib/methods/__tests__/contentHubSyncRule.test.js +130 -0
  31. package/lib/methods/__tests__/contentHubSyncRule.test.js.map +1 -0
  32. package/lib/methods/__tests__/contentHubTagSync.test.d.ts +1 -0
  33. package/lib/methods/__tests__/contentHubTagSync.test.js +743 -0
  34. package/lib/methods/__tests__/contentHubTagSync.test.js.map +1 -0
  35. package/lib/methods/__tests__/tagLabel.test.d.ts +1 -0
  36. package/lib/methods/__tests__/tagLabel.test.js +136 -0
  37. package/lib/methods/__tests__/tagLabel.test.js.map +1 -0
  38. package/lib/methods/approval_engine.js +10 -7
  39. package/lib/methods/approval_engine.js.map +1 -1
  40. package/lib/methods/consts.d.ts +4 -0
  41. package/lib/methods/consts.js.map +1 -1
  42. package/lib/methods/content_hub.d.ts +8 -1
  43. package/lib/methods/content_hub.js +278 -27
  44. package/lib/methods/content_hub.js.map +1 -1
  45. package/lib/methods/content_hub_copyright.d.ts +15 -0
  46. package/lib/methods/content_hub_copyright.js +223 -0
  47. package/lib/methods/content_hub_copyright.js.map +1 -0
  48. package/lib/methods/content_hub_material_group.d.ts +29 -0
  49. package/lib/methods/content_hub_material_group.js +268 -0
  50. package/lib/methods/content_hub_material_group.js.map +1 -0
  51. package/lib/methods/content_hub_material_group_rule.d.ts +23 -0
  52. package/lib/methods/content_hub_material_group_rule.js +58 -0
  53. package/lib/methods/content_hub_material_group_rule.js.map +1 -0
  54. package/lib/methods/content_hub_sync_rule.d.ts +51 -0
  55. package/lib/methods/content_hub_sync_rule.js +122 -0
  56. package/lib/methods/content_hub_sync_rule.js.map +1 -0
  57. package/lib/methods/content_hub_tag.d.ts +57 -0
  58. package/lib/methods/content_hub_tag.js +830 -0
  59. package/lib/methods/content_hub_tag.js.map +1 -0
  60. package/lib/methods/pls.d.ts +4 -1
  61. package/lib/methods/pls.js +60 -51
  62. package/lib/methods/pls.js.map +1 -1
  63. package/lib/methods/tag_label.d.ts +19 -0
  64. package/lib/methods/tag_label.js +192 -0
  65. package/lib/methods/tag_label.js.map +1 -0
  66. package/main/default/applications/pepsico_content_setting.app.yml +8 -0
  67. package/main/default/objects/pepesio_ch__c/fields/media_type.field.yml +2 -0
  68. package/main/default/objects/pepesio_ch__c/fields/pepsico_material_approval.field.yml +6 -0
  69. package/main/default/objects/pepesio_ch__c/fields/push_status.field.yml +11 -0
  70. package/main/default/objects/pepesio_ch__c/fields/type.field.yml +48 -8
  71. package/main/default/objects/pepesio_ch__c/listviews/all.listview.yml +2 -0
  72. package/main/default/objects/pepsico_ch_material_group_rule/fields/active.field.yml +6 -0
  73. package/main/default/objects/pepsico_ch_material_group_rule/fields/classification.field.yml +73 -0
  74. package/main/default/objects/pepsico_ch_material_group_rule/fields/name.field.yml +9 -0
  75. package/main/default/objects/pepsico_ch_material_group_rule/fields/orgs.field.yml +10 -0
  76. package/main/default/objects/pepsico_ch_material_group_rule/fields/priority.field.yml +10 -0
  77. package/main/default/objects/pepsico_ch_material_group_rule/fields/query_mode.field.yml +12 -0
  78. package/main/default/objects/pepsico_ch_material_group_rule/fields/remark.field.yml +7 -0
  79. package/main/default/objects/pepsico_ch_material_group_rule/listviews/all.listview.yml +20 -0
  80. package/main/default/objects/pepsico_ch_material_group_rule/pepsico_ch_material_group_rule.object.yml +19 -0
  81. package/main/default/objects/pepsico_ch_material_group_rule/permissions/admin.permission.yml +15 -0
  82. package/main/default/objects/pepsico_ch_material_group_rule/permissions/user.permission.yml +14 -0
  83. package/main/default/objects/pepsico_ch_sync_rule/fields/active.field.yml +6 -0
  84. package/main/default/objects/pepsico_ch_sync_rule/fields/classification.field.yml +73 -0
  85. package/main/default/objects/pepsico_ch_sync_rule/fields/kol_classification.field.yml +67 -0
  86. package/main/default/objects/pepsico_ch_sync_rule/fields/name.field.yml +9 -0
  87. package/main/default/objects/pepsico_ch_sync_rule/fields/need_sync.field.yml +11 -0
  88. package/main/default/objects/pepsico_ch_sync_rule/fields/orgs.field.yml +10 -0
  89. package/main/default/objects/pepsico_ch_sync_rule/fields/priority.field.yml +10 -0
  90. package/main/default/objects/pepsico_ch_sync_rule/fields/product.field.yml +65 -0
  91. package/main/default/objects/pepsico_ch_sync_rule/fields/remark.field.yml +7 -0
  92. package/main/default/objects/pepsico_ch_sync_rule/fields/spot_check.field.yml +12 -0
  93. package/main/default/objects/pepsico_ch_sync_rule/listviews/all.listview.yml +24 -0
  94. package/main/default/objects/pepsico_ch_sync_rule/pepsico_ch_sync_rule.object.yml +19 -0
  95. package/main/default/objects/pepsico_ch_sync_rule/permissions/admin.permission.yml +15 -0
  96. package/main/default/objects/pepsico_ch_sync_rule/permissions/user.permission.yml +14 -0
  97. package/main/default/objects/pepsico_ch_tag_sync_log/fields/action.field.yml +6 -0
  98. package/main/default/objects/pepsico_ch_tag_sync_log/fields/changed_at.field.yml +6 -0
  99. package/main/default/objects/pepsico_ch_tag_sync_log/fields/duration.field.yml +6 -0
  100. package/main/default/objects/pepsico_ch_tag_sync_log/fields/error_code.field.yml +6 -0
  101. package/main/default/objects/pepsico_ch_tag_sync_log/fields/error_msg.field.yml +6 -0
  102. package/main/default/objects/pepsico_ch_tag_sync_log/fields/expired_date.field.yml +6 -0
  103. package/main/default/objects/pepsico_ch_tag_sync_log/fields/name.field.yml +7 -0
  104. package/main/default/objects/pepsico_ch_tag_sync_log/fields/parent_tag_val_id.field.yml +6 -0
  105. package/main/default/objects/pepsico_ch_tag_sync_log/fields/request_id.field.yml +7 -0
  106. package/main/default/objects/pepsico_ch_tag_sync_log/fields/result.field.yml +6 -0
  107. package/main/default/objects/pepsico_ch_tag_sync_log/fields/source_ip.field.yml +6 -0
  108. package/main/default/objects/pepsico_ch_tag_sync_log/fields/space.field.yml +6 -0
  109. package/main/default/objects/pepsico_ch_tag_sync_log/fields/tag_id.field.yml +6 -0
  110. package/main/default/objects/pepsico_ch_tag_sync_log/fields/tag_val_id.field.yml +7 -0
  111. package/main/default/objects/pepsico_ch_tag_sync_log/fields/tag_val_name.field.yml +6 -0
  112. package/main/default/objects/pepsico_ch_tag_sync_log/listviews/all.listview.yml +21 -0
  113. package/main/default/objects/pepsico_ch_tag_sync_log/pepsico_ch_tag_sync_log.object.yml +16 -0
  114. package/main/default/objects/pepsico_ch_tag_sync_log/permissions/admin.permission.yml +15 -0
  115. package/main/default/objects/pepsico_ch_tag_sync_log/permissions/user.permission.yml +14 -0
  116. package/main/default/objects/pepsico_ch_tag_sync_request/fields/changed_at.field.yml +6 -0
  117. package/main/default/objects/pepsico_ch_tag_sync_request/fields/duration.field.yml +6 -0
  118. package/main/default/objects/pepsico_ch_tag_sync_request/fields/expired_date.field.yml +6 -0
  119. package/main/default/objects/pepsico_ch_tag_sync_request/fields/item_count.field.yml +6 -0
  120. package/main/default/objects/pepsico_ch_tag_sync_request/fields/name.field.yml +7 -0
  121. package/main/default/objects/pepsico_ch_tag_sync_request/fields/request_id.field.yml +7 -0
  122. package/main/default/objects/pepsico_ch_tag_sync_request/fields/response.field.yml +9 -0
  123. package/main/default/objects/pepsico_ch_tag_sync_request/fields/result_code.field.yml +6 -0
  124. package/main/default/objects/pepsico_ch_tag_sync_request/fields/source_ip.field.yml +6 -0
  125. package/main/default/objects/pepsico_ch_tag_sync_request/fields/space.field.yml +6 -0
  126. package/main/default/objects/pepsico_ch_tag_sync_request/fields/tag_id.field.yml +6 -0
  127. package/main/default/objects/pepsico_ch_tag_sync_request/fields/tag_label.field.yml +6 -0
  128. package/main/default/objects/pepsico_ch_tag_sync_request/listviews/all.listview.yml +19 -0
  129. package/main/default/objects/pepsico_ch_tag_sync_request/pepsico_ch_tag_sync_request.object.yml +16 -0
  130. package/main/default/objects/pepsico_ch_tag_sync_request/permissions/admin.permission.yml +15 -0
  131. package/main/default/objects/pepsico_ch_tag_sync_request/permissions/user.permission.yml +14 -0
  132. package/main/default/objects/pepsico_material/fields/material_type_label.field.yml +10 -0
  133. package/main/default/objects/pepsico_material_approval/buttons/pepsico_confirm_online.button.yml +78 -1
  134. package/main/default/objects/pepsico_material_approval/buttons/pepsico_modify_pls.button.yml +1 -1
  135. package/main/default/objects/pepsico_material_approval/fields/available_channels.field.yml +2 -0
  136. package/main/default/objects/pepsico_material_approval/fields/available_channels_label.field.yml +10 -0
  137. package/main/default/objects/pepsico_material_approval/fields/ch_material_group.field.yml +56 -0
  138. package/main/default/objects/pepsico_material_approval/fields/ch_material_group_path.field.yml +14 -0
  139. package/main/default/objects/pepsico_material_approval/fields/ch_sync_enabled.field.yml +11 -0
  140. package/main/default/objects/pepsico_material_approval/fields/ch_sync_rule_check.field.yml +55 -0
  141. package/main/default/objects/pepsico_material_approval/fields/content_rule.field.yml +2 -0
  142. package/main/default/objects/pepsico_material_approval/fields/content_rule_label.field.yml +10 -0
  143. package/main/default/objects/pepsico_material_approval/fields/ec_check_food_name.field.yml +2 -2
  144. package/main/default/objects/pepsico_material_approval/fields/ec_check_ingredients.field.yml +2 -2
  145. package/main/default/objects/pepsico_material_approval/fields/ec_check_net_content.field.yml +2 -2
  146. package/main/default/objects/pepsico_material_approval/fields/ec_check_producer_address.field.yml +2 -2
  147. package/main/default/objects/pepsico_material_approval/fields/ec_check_producer_name.field.yml +2 -2
  148. package/main/default/objects/pepsico_material_approval/fields/ec_check_shelf_life.field.yml +2 -2
  149. package/main/default/objects/pepsico_material_approval/fields/ec_check_standard_code.field.yml +2 -2
  150. package/main/default/objects/pepsico_material_approval/fields/ec_check_storage_condition.field.yml +2 -2
  151. package/main/default/objects/pepsico_material_approval/fields/ec_has_detail_page.field.yml +1 -1
  152. package/main/default/objects/pepsico_material_approval/fields/ec_producers.field.yml +1 -1
  153. package/main/default/objects/pepsico_material_approval/fields/ec_qc_production_email.field.yml +2 -2
  154. package/main/default/objects/pepsico_material_approval/fields/ec_related_approval.field.yml +1 -1
  155. package/main/default/objects/pepsico_material_approval/fields/effective_date.field.yml +2 -0
  156. package/main/default/objects/pepsico_material_approval/fields/expiry_date.field.yml +2 -0
  157. package/main/default/objects/pepsico_material_approval/fields/form_version.field.yml +6 -2
  158. package/main/default/objects/pepsico_material_approval/fields/has_nutrition_table.field.yml +1 -1
  159. package/main/default/objects/pepsico_material_approval/fields/material_editable.field.yml +78 -0
  160. package/main/default/objects/pepsico_material_approval/fields/material_type.field.yml +2 -0
  161. package/main/default/objects/pepsico_material_approval/fields/material_type_label.field.yml +10 -0
  162. package/main/default/objects/pepsico_material_approval/fields/pls_file.field.yml +1 -1
  163. package/main/default/objects/pepsico_material_approval/fields/pls_km_files.field.yml +2 -5
  164. package/main/default/objects/pepsico_material_approval/fields/pls_upload_files.field.yml +1 -1
  165. package/main/default/objects/pepsico_material_approval/fields/product_label.field.yml +10 -0
  166. package/main/default/objects/pepsico_material_approval_data/fields/guding_pass.field.yml +9 -1
  167. package/main/default/objects/pepsico_material_data/fields/guding_pass.field.yml +9 -1
  168. package/main/default/objects/picklist_options/fields/ch_changed_at.field.yml +8 -0
  169. package/main/default/objects/picklist_options/picklist_options.object.yml +7 -0
  170. package/main/default/tabs/object_pepsico_ch_material_group_rule.tab.yml +8 -0
  171. package/main/default/tabs/object_pepsico_ch_sync_rule.tab.yml +8 -0
  172. package/main/default/triggers/pepsico_material_approval_tag_label.trigger.yml +80 -0
  173. package/main/default/triggers/pepsico_material_tag_label.trigger.yml +77 -0
  174. package/package.json +1 -1
  175. package/scripts/audit-legacy-tags.js +246 -0
  176. package/scripts/probe-content-hub-tags.js +134 -0
  177. package/main/default/objects/pepsico_material_approval/fields/has_detail_page.field.yml +0 -18
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var content_hub_material_group_rule_1 = require("../content_hub_material_group_rule");
5
+ var contentHubMaterialGroups_1 = require("../../actions/contentHubMaterialGroups");
6
+ var facts = { orgIds: ['org-eka', 'org-sales', 'org-root'], classification: 'SLS-SC2-SC23' };
7
+ describe('materialGroupRuleMatches', function () {
8
+ it('发起人部门命中所选部门或其下级', function () {
9
+ expect((0, content_hub_material_group_rule_1.materialGroupRuleMatches)({ _id: 'r', orgs: ['org-sales'] }, facts)).toBe(true);
10
+ expect((0, content_hub_material_group_rule_1.materialGroupRuleMatches)({ _id: 'r', orgs: ['org-mkt'] }, facts)).toBe(false);
11
+ });
12
+ it('部门 + 分类都要满足; 分类按节点及其下级匹配', function () {
13
+ expect((0, content_hub_material_group_rule_1.materialGroupRuleMatches)({ _id: 'r', orgs: ['org-sales'], classification: ['SLS-SC2'] }, facts)).toBe(true);
14
+ expect((0, content_hub_material_group_rule_1.materialGroupRuleMatches)({ _id: 'r', orgs: ['org-sales'], classification: ['MD-SC1'] }, facts)).toBe(false);
15
+ expect((0, content_hub_material_group_rule_1.materialGroupRuleMatches)({ _id: 'r', orgs: ['org-mkt'], classification: ['SLS-SC2'] }, facts)).toBe(false);
16
+ });
17
+ it('两个条件都没填的规则无效, 不会把所有人切到 Sales', function () {
18
+ expect((0, content_hub_material_group_rule_1.materialGroupRuleMatches)({ _id: 'r' }, facts)).toBe(false);
19
+ expect((0, content_hub_material_group_rule_1.materialGroupRuleMatches)({ _id: 'r', orgs: [], classification: [] }, facts)).toBe(false);
20
+ });
21
+ });
22
+ var createService = function (rules) {
23
+ var getObject = function (name) { return ({
24
+ directFind: function (_a) {
25
+ var filters = _a.filters;
26
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
27
+ return tslib_1.__generator(this, function (_b) {
28
+ if (name === 'pepsico_ch_material_group_rule')
29
+ return [2, rules];
30
+ if (name === 'organizations')
31
+ return [2, [{ _id: filters[0][2], parents: filters[0][2] === 'org-eka' ? ['org-sales', 'org-root'] : ['org-root'] }]];
32
+ if (name === 'picklists')
33
+ return [2, [{ _id: 'pl-product' }]];
34
+ if (name === 'picklist_options')
35
+ return [2, [{ value: 'p1', name: '乐事' }, { value: 'p2', name: '经典袋装' }]];
36
+ return [2, []];
37
+ });
38
+ });
39
+ }
40
+ }); };
41
+ var logger = { info: function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
42
+ return [2, undefined];
43
+ }); }); }, error: function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
44
+ return [2, undefined];
45
+ }); }); } };
46
+ return { getObject: getObject, getLogger: function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
47
+ return [2, logger];
48
+ }); }); } };
49
+ };
50
+ describe('matchMaterialGroupRule', function () {
51
+ it('没有规则或不命中时返回 null', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
52
+ var getObject, _a, svc, _b;
53
+ return tslib_1.__generator(this, function (_c) {
54
+ switch (_c.label) {
55
+ case 0:
56
+ getObject = createService([]).getObject;
57
+ _a = expect;
58
+ return [4, (0, content_hub_material_group_rule_1.matchMaterialGroupRule)({ getObject: getObject }, { ownerDepartment: 'org-eka' })];
59
+ case 1:
60
+ _a.apply(void 0, [_c.sent()]).toBeNull();
61
+ svc = createService([{ _id: 'r1', orgs: ['org-mkt'] }]);
62
+ _b = expect;
63
+ return [4, (0, content_hub_material_group_rule_1.matchMaterialGroupRule)({ getObject: svc.getObject }, { ownerDepartment: 'org-eka' })];
64
+ case 2:
65
+ _b.apply(void 0, [_c.sent()]).toBeNull();
66
+ return [2];
67
+ }
68
+ });
69
+ }); });
70
+ it('按发起人部门的上级部门命中', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
71
+ var getObject, _a;
72
+ return tslib_1.__generator(this, function (_b) {
73
+ switch (_b.label) {
74
+ case 0:
75
+ getObject = createService([{ _id: 'r1', orgs: ['org-sales'] }]).getObject;
76
+ _a = expect;
77
+ return [4, (0, content_hub_material_group_rule_1.matchMaterialGroupRule)({ getObject: getObject }, { ownerDepartment: 'org-eka' })];
78
+ case 1:
79
+ _a.apply(void 0, [_b.sent()]).toMatchObject({ _id: 'r1' });
80
+ return [2];
81
+ }
82
+ });
83
+ }); });
84
+ });
85
+ describe('getQueryMode', function () {
86
+ it('按规则上选的查询方式; 不命中按品牌/产品; 早期没填查询方式的规则按 Sales', function () {
87
+ expect((0, content_hub_material_group_rule_1.getQueryMode)({ _id: 'r', query_mode: 'product' })).toBe('product');
88
+ expect((0, content_hub_material_group_rule_1.getQueryMode)({ _id: 'r', query_mode: 'sales' })).toBe('sales');
89
+ expect((0, content_hub_material_group_rule_1.getQueryMode)(null)).toBe('product');
90
+ expect((0, content_hub_material_group_rule_1.getQueryMode)({ _id: 'r' })).toBe('sales');
91
+ });
92
+ });
93
+ describe('contentHubMaterialGroups 查询方式', function () {
94
+ var env = process.env.PEPSICO_CONTENT_HUB_MATERIAL_GROUP_MOCK;
95
+ beforeAll(function () { process.env.PEPSICO_CONTENT_HUB_MATERIAL_GROUP_MOCK = 'true'; });
96
+ afterAll(function () { process.env.PEPSICO_CONTENT_HUB_MATERIAL_GROUP_MOCK = env; });
97
+ var call = function (rules, params) { return contentHubMaterialGroups_1.contentHubMaterialGroups.handler.call(createService(rules), {
98
+ params: params,
99
+ meta: { user: { userId: 'u1' } }
100
+ }); };
101
+ it('命中「显示销售目录」的规则时按 Sales 范围查, 不需要品牌/产品', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
102
+ var result;
103
+ return tslib_1.__generator(this, function (_a) {
104
+ switch (_a.label) {
105
+ case 0: return [4, call([{ _id: 'r1', orgs: ['org-sales'], query_mode: 'sales' }], { owner_department: 'org-eka', classification: '' })];
106
+ case 1:
107
+ result = _a.sent();
108
+ expect(result.status).toBe(0);
109
+ expect(result.data.options.map(function (o) { return o.label; })).toEqual(['线上衍生素材', '线下衍生素材', '非渠道衍生素材-EKA', '非渠道衍生素材-DCO']);
110
+ return [2];
111
+ }
112
+ });
113
+ }); });
114
+ it('命中「按品牌/产品查」的规则时按名称路径查', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
115
+ var result;
116
+ return tslib_1.__generator(this, function (_a) {
117
+ switch (_a.label) {
118
+ case 0: return [4, call([{ _id: 'r1', orgs: ['org-sales'], query_mode: 'product' }], { owner_department: 'org-eka', product: 'p1-p2' })];
119
+ case 1:
120
+ result = _a.sent();
121
+ expect(result.data.options[0]).toMatchObject({ label: '经典袋装', materialGroupPath: '乐事|经典袋装' });
122
+ return [2];
123
+ }
124
+ });
125
+ }); });
126
+ it('多条命中时以排在前面(优先级高)的为准', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
127
+ var rules, result;
128
+ return tslib_1.__generator(this, function (_a) {
129
+ switch (_a.label) {
130
+ case 0:
131
+ rules = [
132
+ { _id: 'r1', orgs: ['org-eka'], query_mode: 'product' },
133
+ { _id: 'r2', orgs: ['org-sales'], query_mode: 'sales' }
134
+ ];
135
+ return [4, call(rules, { owner_department: 'org-eka', product: 'p1-p2' })];
136
+ case 1:
137
+ result = _a.sent();
138
+ expect(result.data.options[0]).toMatchObject({ materialGroupPath: '乐事|经典袋装' });
139
+ return [2];
140
+ }
141
+ });
142
+ }); });
143
+ it('不命中时按品牌/产品的名称路径查', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
144
+ var result;
145
+ return tslib_1.__generator(this, function (_a) {
146
+ switch (_a.label) {
147
+ case 0: return [4, call([{ _id: 'r1', orgs: ['org-sales'] }], { owner_department: 'org-mkt', product: 'p1-p2' })];
148
+ case 1:
149
+ result = _a.sent();
150
+ expect(result.data.options[0]).toMatchObject({ label: '经典袋装', materialGroupPath: '乐事|经典袋装' });
151
+ return [2];
152
+ }
153
+ });
154
+ }); });
155
+ it('不命中且没选品牌/产品时返回空列表', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
156
+ var result;
157
+ return tslib_1.__generator(this, function (_a) {
158
+ switch (_a.label) {
159
+ case 0: return [4, call([], { owner_department: 'org-mkt', product: '' })];
160
+ case 1:
161
+ result = _a.sent();
162
+ expect(result).toEqual({ status: 0, msg: '', data: { options: [] } });
163
+ return [2];
164
+ }
165
+ });
166
+ }); });
167
+ });
168
+ //# sourceMappingURL=contentHubMaterialGroupRule.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentHubMaterialGroupRule.test.js","sourceRoot":"","sources":["../../../src/methods/__tests__/contentHubMaterialGroupRule.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};