@open-mercato/core 0.4.5-develop-2e9903a57a → 0.4.5-develop-eeccf7adf4

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 (473) hide show
  1. package/package.json +2 -2
  2. package/dist/modules/auth/__integration__/TC-AUTH-001.spec.js +0 -9
  3. package/dist/modules/auth/__integration__/TC-AUTH-001.spec.js.map +0 -7
  4. package/dist/modules/auth/__integration__/TC-AUTH-002.spec.js +0 -22
  5. package/dist/modules/auth/__integration__/TC-AUTH-002.spec.js.map +0 -7
  6. package/dist/modules/auth/__integration__/TC-AUTH-003.spec.js +0 -21
  7. package/dist/modules/auth/__integration__/TC-AUTH-003.spec.js.map +0 -7
  8. package/dist/modules/auth/__integration__/TC-AUTH-004.spec.js +0 -15
  9. package/dist/modules/auth/__integration__/TC-AUTH-004.spec.js.map +0 -7
  10. package/dist/modules/auth/__integration__/TC-AUTH-005.spec.js +0 -11
  11. package/dist/modules/auth/__integration__/TC-AUTH-005.spec.js.map +0 -7
  12. package/dist/modules/auth/__integration__/TC-AUTH-006.spec.js +0 -11
  13. package/dist/modules/auth/__integration__/TC-AUTH-006.spec.js.map +0 -7
  14. package/dist/modules/auth/__integration__/TC-AUTH-007.spec.js +0 -14
  15. package/dist/modules/auth/__integration__/TC-AUTH-007.spec.js.map +0 -7
  16. package/dist/modules/auth/__integration__/TC-AUTH-008.spec.js +0 -26
  17. package/dist/modules/auth/__integration__/TC-AUTH-008.spec.js.map +0 -7
  18. package/dist/modules/auth/__integration__/TC-AUTH-009.spec.js +0 -16
  19. package/dist/modules/auth/__integration__/TC-AUTH-009.spec.js.map +0 -7
  20. package/dist/modules/auth/__integration__/TC-AUTH-010.spec.js +0 -32
  21. package/dist/modules/auth/__integration__/TC-AUTH-010.spec.js.map +0 -7
  22. package/dist/modules/auth/__integration__/TC-AUTH-011.spec.js +0 -26
  23. package/dist/modules/auth/__integration__/TC-AUTH-011.spec.js.map +0 -7
  24. package/dist/modules/auth/__integration__/TC-AUTH-012.spec.js +0 -30
  25. package/dist/modules/auth/__integration__/TC-AUTH-012.spec.js.map +0 -7
  26. package/dist/modules/auth/__integration__/TC-AUTH-013.spec.js +0 -41
  27. package/dist/modules/auth/__integration__/TC-AUTH-013.spec.js.map +0 -7
  28. package/dist/modules/auth/__integration__/TC-AUTH-014.spec.js +0 -25
  29. package/dist/modules/auth/__integration__/TC-AUTH-014.spec.js.map +0 -7
  30. package/dist/modules/auth/__integration__/TC-AUTH-015.spec.js +0 -20
  31. package/dist/modules/auth/__integration__/TC-AUTH-015.spec.js.map +0 -7
  32. package/dist/modules/auth/__integration__/TC-AUTH-016.spec.js +0 -76
  33. package/dist/modules/auth/__integration__/TC-AUTH-016.spec.js.map +0 -7
  34. package/dist/modules/catalog/__integration__/TC-CAT-001.spec.js +0 -20
  35. package/dist/modules/catalog/__integration__/TC-CAT-001.spec.js.map +0 -7
  36. package/dist/modules/catalog/__integration__/TC-CAT-002.spec.js +0 -12
  37. package/dist/modules/catalog/__integration__/TC-CAT-002.spec.js.map +0 -7
  38. package/dist/modules/catalog/__integration__/TC-CAT-003.spec.js +0 -28
  39. package/dist/modules/catalog/__integration__/TC-CAT-003.spec.js.map +0 -7
  40. package/dist/modules/catalog/__integration__/TC-CAT-004.spec.js +0 -33
  41. package/dist/modules/catalog/__integration__/TC-CAT-004.spec.js.map +0 -7
  42. package/dist/modules/catalog/__integration__/TC-CAT-005.spec.js +0 -30
  43. package/dist/modules/catalog/__integration__/TC-CAT-005.spec.js.map +0 -7
  44. package/dist/modules/catalog/__integration__/TC-CAT-006.spec.js +0 -31
  45. package/dist/modules/catalog/__integration__/TC-CAT-006.spec.js.map +0 -7
  46. package/dist/modules/catalog/__integration__/TC-CAT-007.spec.js +0 -31
  47. package/dist/modules/catalog/__integration__/TC-CAT-007.spec.js.map +0 -7
  48. package/dist/modules/catalog/__integration__/TC-CAT-008.spec.js +0 -65
  49. package/dist/modules/catalog/__integration__/TC-CAT-008.spec.js.map +0 -7
  50. package/dist/modules/catalog/__integration__/TC-CAT-009.spec.js +0 -31
  51. package/dist/modules/catalog/__integration__/TC-CAT-009.spec.js.map +0 -7
  52. package/dist/modules/catalog/__integration__/TC-CAT-010.spec.js +0 -28
  53. package/dist/modules/catalog/__integration__/TC-CAT-010.spec.js.map +0 -7
  54. package/dist/modules/catalog/__integration__/TC-CAT-011.spec.js +0 -34
  55. package/dist/modules/catalog/__integration__/TC-CAT-011.spec.js.map +0 -7
  56. package/dist/modules/catalog/__integration__/TC-CAT-012.spec.js +0 -27
  57. package/dist/modules/catalog/__integration__/TC-CAT-012.spec.js.map +0 -7
  58. package/dist/modules/core/__integration__/admin/TC-ADMIN-001.spec.js +0 -44
  59. package/dist/modules/core/__integration__/admin/TC-ADMIN-001.spec.js.map +0 -7
  60. package/dist/modules/core/__integration__/admin/TC-ADMIN-002.spec.js +0 -53
  61. package/dist/modules/core/__integration__/admin/TC-ADMIN-002.spec.js.map +0 -7
  62. package/dist/modules/core/__integration__/admin/TC-ADMIN-003.spec.js +0 -26
  63. package/dist/modules/core/__integration__/admin/TC-ADMIN-003.spec.js.map +0 -7
  64. package/dist/modules/core/__integration__/admin/TC-ADMIN-004.spec.js +0 -47
  65. package/dist/modules/core/__integration__/admin/TC-ADMIN-004.spec.js.map +0 -7
  66. package/dist/modules/core/__integration__/admin/TC-ADMIN-005.spec.js +0 -33
  67. package/dist/modules/core/__integration__/admin/TC-ADMIN-005.spec.js.map +0 -7
  68. package/dist/modules/core/__integration__/admin/TC-ADMIN-006.spec.js +0 -30
  69. package/dist/modules/core/__integration__/admin/TC-ADMIN-006.spec.js.map +0 -7
  70. package/dist/modules/core/__integration__/admin/TC-ADMIN-007.spec.js +0 -36
  71. package/dist/modules/core/__integration__/admin/TC-ADMIN-007.spec.js.map +0 -7
  72. package/dist/modules/core/__integration__/admin/TC-ADMIN-008.spec.js +0 -113
  73. package/dist/modules/core/__integration__/admin/TC-ADMIN-008.spec.js.map +0 -7
  74. package/dist/modules/core/__integration__/admin/TC-ADMIN-009.spec.js +0 -25
  75. package/dist/modules/core/__integration__/admin/TC-ADMIN-009.spec.js.map +0 -7
  76. package/dist/modules/core/__integration__/admin/TC-ADMIN-010.spec.js +0 -35
  77. package/dist/modules/core/__integration__/admin/TC-ADMIN-010.spec.js.map +0 -7
  78. package/dist/modules/core/__integration__/helpers/api.js +0 -64
  79. package/dist/modules/core/__integration__/helpers/api.js.map +0 -7
  80. package/dist/modules/core/__integration__/helpers/auth.js +0 -98
  81. package/dist/modules/core/__integration__/helpers/auth.js.map +0 -7
  82. package/dist/modules/core/__integration__/helpers/authUi.js +0 -31
  83. package/dist/modules/core/__integration__/helpers/authUi.js.map +0 -7
  84. package/dist/modules/core/__integration__/helpers/catalogFixtures.js +0 -49
  85. package/dist/modules/core/__integration__/helpers/catalogFixtures.js.map +0 -7
  86. package/dist/modules/core/__integration__/helpers/crmFixtures.js +0 -73
  87. package/dist/modules/core/__integration__/helpers/crmFixtures.js.map +0 -7
  88. package/dist/modules/core/__integration__/helpers/salesFixtures.js +0 -63
  89. package/dist/modules/core/__integration__/helpers/salesFixtures.js.map +0 -7
  90. package/dist/modules/core/__integration__/helpers/salesUi.js +0 -464
  91. package/dist/modules/core/__integration__/helpers/salesUi.js.map +0 -7
  92. package/dist/modules/core/__integration__/integration/TC-INT-001.spec.js +0 -26
  93. package/dist/modules/core/__integration__/integration/TC-INT-001.spec.js.map +0 -7
  94. package/dist/modules/core/__integration__/integration/TC-INT-002.spec.js +0 -60
  95. package/dist/modules/core/__integration__/integration/TC-INT-002.spec.js.map +0 -7
  96. package/dist/modules/core/__integration__/integration/TC-INT-003.spec.js +0 -36
  97. package/dist/modules/core/__integration__/integration/TC-INT-003.spec.js.map +0 -7
  98. package/dist/modules/core/__integration__/integration/TC-INT-004.spec.js +0 -74
  99. package/dist/modules/core/__integration__/integration/TC-INT-004.spec.js.map +0 -7
  100. package/dist/modules/core/__integration__/integration/TC-INT-005.spec.js +0 -21
  101. package/dist/modules/core/__integration__/integration/TC-INT-005.spec.js.map +0 -7
  102. package/dist/modules/customers/__integration__/TC-CRM-001.spec.js +0 -32
  103. package/dist/modules/customers/__integration__/TC-CRM-001.spec.js.map +0 -7
  104. package/dist/modules/customers/__integration__/TC-CRM-002.spec.js +0 -35
  105. package/dist/modules/customers/__integration__/TC-CRM-002.spec.js.map +0 -7
  106. package/dist/modules/customers/__integration__/TC-CRM-003.spec.js +0 -40
  107. package/dist/modules/customers/__integration__/TC-CRM-003.spec.js.map +0 -7
  108. package/dist/modules/customers/__integration__/TC-CRM-004.spec.js +0 -40
  109. package/dist/modules/customers/__integration__/TC-CRM-004.spec.js.map +0 -7
  110. package/dist/modules/customers/__integration__/TC-CRM-005.spec.js +0 -37
  111. package/dist/modules/customers/__integration__/TC-CRM-005.spec.js.map +0 -7
  112. package/dist/modules/customers/__integration__/TC-CRM-006.spec.js +0 -42
  113. package/dist/modules/customers/__integration__/TC-CRM-006.spec.js.map +0 -7
  114. package/dist/modules/customers/__integration__/TC-CRM-007.spec.js +0 -44
  115. package/dist/modules/customers/__integration__/TC-CRM-007.spec.js.map +0 -7
  116. package/dist/modules/customers/__integration__/TC-CRM-008.spec.js +0 -50
  117. package/dist/modules/customers/__integration__/TC-CRM-008.spec.js.map +0 -7
  118. package/dist/modules/customers/__integration__/TC-CRM-009.spec.js +0 -33
  119. package/dist/modules/customers/__integration__/TC-CRM-009.spec.js.map +0 -7
  120. package/dist/modules/customers/__integration__/TC-CRM-010.spec.js +0 -39
  121. package/dist/modules/customers/__integration__/TC-CRM-010.spec.js.map +0 -7
  122. package/dist/modules/customers/__integration__/TC-CRM-011.spec.js +0 -37
  123. package/dist/modules/customers/__integration__/TC-CRM-011.spec.js.map +0 -7
  124. package/dist/modules/customers/__integration__/TC-CRM-012.spec.js +0 -38
  125. package/dist/modules/customers/__integration__/TC-CRM-012.spec.js.map +0 -7
  126. package/dist/modules/customers/__integration__/TC-CRM-013.spec.js +0 -43
  127. package/dist/modules/customers/__integration__/TC-CRM-013.spec.js.map +0 -7
  128. package/dist/modules/customers/__integration__/TC-CRM-014.spec.js +0 -23
  129. package/dist/modules/customers/__integration__/TC-CRM-014.spec.js.map +0 -7
  130. package/dist/modules/customers/__integration__/TC-CRM-015.spec.js +0 -63
  131. package/dist/modules/customers/__integration__/TC-CRM-015.spec.js.map +0 -7
  132. package/dist/modules/customers/__integration__/TC-CRM-016.spec.js +0 -46
  133. package/dist/modules/customers/__integration__/TC-CRM-016.spec.js.map +0 -7
  134. package/dist/modules/customers/__integration__/TC-CRM-017.spec.js +0 -29
  135. package/dist/modules/customers/__integration__/TC-CRM-017.spec.js.map +0 -7
  136. package/dist/modules/customers/__integration__/TC-CRM-018.spec.js +0 -52
  137. package/dist/modules/customers/__integration__/TC-CRM-018.spec.js.map +0 -7
  138. package/dist/modules/customers/__integration__/TC-CRM-019.spec.js +0 -37
  139. package/dist/modules/customers/__integration__/TC-CRM-019.spec.js.map +0 -7
  140. package/dist/modules/customers/__integration__/TC-CRM-020.spec.js +0 -65
  141. package/dist/modules/customers/__integration__/TC-CRM-020.spec.js.map +0 -7
  142. package/dist/modules/progress/__integration__/TC-PROG-001.spec.js +0 -51
  143. package/dist/modules/progress/__integration__/TC-PROG-001.spec.js.map +0 -7
  144. package/dist/modules/resources/__integration__/TC-INT-007.spec.js +0 -88
  145. package/dist/modules/resources/__integration__/TC-INT-007.spec.js.map +0 -7
  146. package/dist/modules/resources/__integration__/helpers/resourcesFixtures.js +0 -45
  147. package/dist/modules/resources/__integration__/helpers/resourcesFixtures.js.map +0 -7
  148. package/dist/modules/sales/__integration__/TC-SALES-001.spec.js +0 -20
  149. package/dist/modules/sales/__integration__/TC-SALES-001.spec.js.map +0 -7
  150. package/dist/modules/sales/__integration__/TC-SALES-002.spec.js +0 -31
  151. package/dist/modules/sales/__integration__/TC-SALES-002.spec.js.map +0 -7
  152. package/dist/modules/sales/__integration__/TC-SALES-003.spec.js +0 -13
  153. package/dist/modules/sales/__integration__/TC-SALES-003.spec.js.map +0 -7
  154. package/dist/modules/sales/__integration__/TC-SALES-004.spec.js +0 -14
  155. package/dist/modules/sales/__integration__/TC-SALES-004.spec.js.map +0 -7
  156. package/dist/modules/sales/__integration__/TC-SALES-005.spec.js +0 -15
  157. package/dist/modules/sales/__integration__/TC-SALES-005.spec.js.map +0 -7
  158. package/dist/modules/sales/__integration__/TC-SALES-006.spec.js +0 -20
  159. package/dist/modules/sales/__integration__/TC-SALES-006.spec.js.map +0 -7
  160. package/dist/modules/sales/__integration__/TC-SALES-007.spec.js +0 -19
  161. package/dist/modules/sales/__integration__/TC-SALES-007.spec.js.map +0 -7
  162. package/dist/modules/sales/__integration__/TC-SALES-008.spec.js +0 -7
  163. package/dist/modules/sales/__integration__/TC-SALES-008.spec.js.map +0 -7
  164. package/dist/modules/sales/__integration__/TC-SALES-009.spec.js +0 -7
  165. package/dist/modules/sales/__integration__/TC-SALES-009.spec.js.map +0 -7
  166. package/dist/modules/sales/__integration__/TC-SALES-010.spec.js +0 -16
  167. package/dist/modules/sales/__integration__/TC-SALES-010.spec.js.map +0 -7
  168. package/dist/modules/sales/__integration__/TC-SALES-011.spec.js +0 -20
  169. package/dist/modules/sales/__integration__/TC-SALES-011.spec.js.map +0 -7
  170. package/dist/modules/sales/__integration__/TC-SALES-012.spec.js +0 -7
  171. package/dist/modules/sales/__integration__/TC-SALES-012.spec.js.map +0 -7
  172. package/dist/modules/sales/__integration__/TC-SALES-013.spec.js +0 -66
  173. package/dist/modules/sales/__integration__/TC-SALES-013.spec.js.map +0 -7
  174. package/dist/modules/sales/__integration__/TC-SALES-014.spec.js +0 -13
  175. package/dist/modules/sales/__integration__/TC-SALES-014.spec.js.map +0 -7
  176. package/dist/modules/sales/__integration__/TC-SALES-015.spec.js +0 -13
  177. package/dist/modules/sales/__integration__/TC-SALES-015.spec.js.map +0 -7
  178. package/dist/modules/sales/__integration__/TC-SALES-016.spec.js +0 -13
  179. package/dist/modules/sales/__integration__/TC-SALES-016.spec.js.map +0 -7
  180. package/dist/modules/sales/__integration__/TC-SALES-017.spec.js +0 -44
  181. package/dist/modules/sales/__integration__/TC-SALES-017.spec.js.map +0 -7
  182. package/dist/modules/sales/__integration__/TC-SALES-018.spec.js +0 -18
  183. package/dist/modules/sales/__integration__/TC-SALES-018.spec.js.map +0 -7
  184. package/dist/modules/sales/__integration__/TC-SALES-019.spec.js +0 -16
  185. package/dist/modules/sales/__integration__/TC-SALES-019.spec.js.map +0 -7
  186. package/dist/modules/sales/__integration__/TC-SALES-020.spec.js +0 -75
  187. package/dist/modules/sales/__integration__/TC-SALES-020.spec.js.map +0 -7
  188. package/dist/modules/staff/__integration__/TC-INT-006.spec.js +0 -64
  189. package/dist/modules/staff/__integration__/TC-INT-006.spec.js.map +0 -7
  190. package/dist/modules/translations/__integration__/TC-TRANS-001.spec.js +0 -48
  191. package/dist/modules/translations/__integration__/TC-TRANS-001.spec.js.map +0 -7
  192. package/dist/modules/translations/__integration__/TC-TRANS-002.spec.js +0 -94
  193. package/dist/modules/translations/__integration__/TC-TRANS-002.spec.js.map +0 -7
  194. package/dist/modules/translations/__integration__/TC-TRANS-003.spec.js +0 -61
  195. package/dist/modules/translations/__integration__/TC-TRANS-003.spec.js.map +0 -7
  196. package/dist/modules/translations/__integration__/TC-TRANS-004.spec.js +0 -52
  197. package/dist/modules/translations/__integration__/TC-TRANS-004.spec.js.map +0 -7
  198. package/dist/modules/translations/__integration__/TC-TRANS-005.spec.js +0 -106
  199. package/dist/modules/translations/__integration__/TC-TRANS-005.spec.js.map +0 -7
  200. package/dist/modules/translations/__integration__/TC-TRANS-006.spec.js +0 -94
  201. package/dist/modules/translations/__integration__/TC-TRANS-006.spec.js.map +0 -7
  202. package/dist/modules/translations/__integration__/TC-TRANS-007.spec.js +0 -62
  203. package/dist/modules/translations/__integration__/TC-TRANS-007.spec.js.map +0 -7
  204. package/dist/modules/translations/__integration__/TC-TRANS-008.spec.js +0 -168
  205. package/dist/modules/translations/__integration__/TC-TRANS-008.spec.js.map +0 -7
  206. package/dist/modules/translations/__integration__/helpers/translationFixtures.js +0 -63
  207. package/dist/modules/translations/__integration__/helpers/translationFixtures.js.map +0 -7
  208. package/dist/modules/workflows/__integration__/TC-WF-001.spec.js +0 -73
  209. package/dist/modules/workflows/__integration__/TC-WF-001.spec.js.map +0 -7
  210. package/src/__tests__/module-decoupling.test.ts +0 -356
  211. package/src/modules/api_keys/api/__tests__/keys.route.test.ts +0 -244
  212. package/src/modules/attachments/api/__tests__/attachments.api.test.ts +0 -240
  213. package/src/modules/attachments/components/__tests__/AttachmentContentPreview.test.tsx +0 -45
  214. package/src/modules/attachments/data/__tests__/entities-ocr.test.ts +0 -15
  215. package/src/modules/attachments/lib/__tests__/ocr-config.test.ts +0 -27
  216. package/src/modules/attachments/lib/__tests__/textExtraction.test.ts +0 -64
  217. package/src/modules/audit_logs/api/__tests__/access.route.test.ts +0 -118
  218. package/src/modules/audit_logs/api/__tests__/redo.route.test.ts +0 -131
  219. package/src/modules/audit_logs/api/__tests__/undo.route.test.ts +0 -103
  220. package/src/modules/audit_logs/services/__tests__/actionLogService.test.ts +0 -26
  221. package/src/modules/auth/__integration__/TC-AUTH-001.spec.ts +0 -13
  222. package/src/modules/auth/__integration__/TC-AUTH-002.spec.ts +0 -30
  223. package/src/modules/auth/__integration__/TC-AUTH-003.spec.ts +0 -28
  224. package/src/modules/auth/__integration__/TC-AUTH-004.spec.ts +0 -21
  225. package/src/modules/auth/__integration__/TC-AUTH-005.spec.ts +0 -17
  226. package/src/modules/auth/__integration__/TC-AUTH-006.spec.ts +0 -17
  227. package/src/modules/auth/__integration__/TC-AUTH-007.spec.ts +0 -19
  228. package/src/modules/auth/__integration__/TC-AUTH-008.spec.ts +0 -31
  229. package/src/modules/auth/__integration__/TC-AUTH-009.spec.ts +0 -22
  230. package/src/modules/auth/__integration__/TC-AUTH-010.spec.ts +0 -39
  231. package/src/modules/auth/__integration__/TC-AUTH-011.spec.ts +0 -35
  232. package/src/modules/auth/__integration__/TC-AUTH-012.spec.ts +0 -36
  233. package/src/modules/auth/__integration__/TC-AUTH-013.spec.ts +0 -48
  234. package/src/modules/auth/__integration__/TC-AUTH-014.spec.ts +0 -31
  235. package/src/modules/auth/__integration__/TC-AUTH-015.spec.ts +0 -28
  236. package/src/modules/auth/__integration__/TC-AUTH-016.spec.ts +0 -109
  237. package/src/modules/auth/__tests__/cli-rotate-encryption.test.ts +0 -97
  238. package/src/modules/auth/__tests__/cli-setup-acl.test.ts +0 -148
  239. package/src/modules/auth/api/__tests__/feature-check.test.ts +0 -65
  240. package/src/modules/auth/api/__tests__/login.test.ts +0 -47
  241. package/src/modules/auth/commands/__tests__/roles.custom-fields.test.ts +0 -126
  242. package/src/modules/auth/commands/__tests__/users.custom-fields.test.ts +0 -147
  243. package/src/modules/auth/lib/__tests__/rateLimitCheck.test.ts +0 -224
  244. package/src/modules/auth/services/__tests__/authService.test.ts +0 -32
  245. package/src/modules/auth/services/__tests__/rbacService.test.ts +0 -814
  246. package/src/modules/business_rules/api/__tests__/execute.route.test.ts +0 -311
  247. package/src/modules/business_rules/api/__tests__/logs-detail.route.test.ts +0 -181
  248. package/src/modules/business_rules/api/__tests__/logs.route.test.ts +0 -261
  249. package/src/modules/business_rules/api/__tests__/rules-detail.route.test.ts +0 -115
  250. package/src/modules/business_rules/api/__tests__/rules.route.test.ts +0 -746
  251. package/src/modules/business_rules/api/__tests__/sets-detail.route.test.ts +0 -169
  252. package/src/modules/business_rules/api/__tests__/sets-members.route.test.ts +0 -367
  253. package/src/modules/business_rules/api/__tests__/sets.route.test.ts +0 -361
  254. package/src/modules/business_rules/api/__tests__/test-helpers.ts +0 -42
  255. package/src/modules/business_rules/components/utils/__tests__/formHelpers.test.ts +0 -69
  256. package/src/modules/business_rules/data/__tests__/validators.test.ts +0 -637
  257. package/src/modules/business_rules/lib/__tests__/action-executor.test.ts +0 -728
  258. package/src/modules/business_rules/lib/__tests__/expression-evaluator.test.ts +0 -592
  259. package/src/modules/business_rules/lib/__tests__/rule-engine.test.ts +0 -805
  260. package/src/modules/business_rules/lib/__tests__/rule-evaluator.test.ts +0 -436
  261. package/src/modules/catalog/__integration__/TC-CAT-001.spec.ts +0 -32
  262. package/src/modules/catalog/__integration__/TC-CAT-002.spec.ts +0 -19
  263. package/src/modules/catalog/__integration__/TC-CAT-003.spec.ts +0 -39
  264. package/src/modules/catalog/__integration__/TC-CAT-004.spec.ts +0 -41
  265. package/src/modules/catalog/__integration__/TC-CAT-005.spec.ts +0 -37
  266. package/src/modules/catalog/__integration__/TC-CAT-006.spec.ts +0 -40
  267. package/src/modules/catalog/__integration__/TC-CAT-007.spec.ts +0 -37
  268. package/src/modules/catalog/__integration__/TC-CAT-008.spec.ts +0 -76
  269. package/src/modules/catalog/__integration__/TC-CAT-009.spec.ts +0 -39
  270. package/src/modules/catalog/__integration__/TC-CAT-010.spec.ts +0 -36
  271. package/src/modules/catalog/__integration__/TC-CAT-011.spec.ts +0 -44
  272. package/src/modules/catalog/__integration__/TC-CAT-012.spec.ts +0 -35
  273. package/src/modules/catalog/api/__tests__/offers.route.test.ts +0 -161
  274. package/src/modules/catalog/api/__tests__/prices.route.test.ts +0 -39
  275. package/src/modules/catalog/api/__tests__/products.route.test.ts +0 -91
  276. package/src/modules/catalog/api/__tests__/utils.test.ts +0 -36
  277. package/src/modules/catalog/api/__tests__/variants.route.test.ts +0 -44
  278. package/src/modules/catalog/backend/catalog/products/__tests__/ProductsDataTable.test.tsx +0 -172
  279. package/src/modules/catalog/commands/__tests__/products.delete.test.ts +0 -146
  280. package/src/modules/catalog/commands/__tests__/products.update.test.ts +0 -142
  281. package/src/modules/catalog/commands/__tests__/registration.test.ts +0 -54
  282. package/src/modules/catalog/commands/__tests__/shared.test.ts +0 -129
  283. package/src/modules/catalog/components/__tests__/catalogComponentsRender.test.tsx +0 -373
  284. package/src/modules/catalog/components/products/__tests__/ProductImageCell.test.tsx +0 -51
  285. package/src/modules/catalog/components/products/__tests__/productForm.test.ts +0 -32
  286. package/src/modules/catalog/lib/__tests__/pricing.test.ts +0 -150
  287. package/src/modules/catalog/services/__tests__/catalogPricingService.test.ts +0 -21
  288. package/src/modules/configs/components/__tests__/CachePanel.test.tsx +0 -134
  289. package/src/modules/configs/components/__tests__/SystemStatusPanel.test.tsx +0 -93
  290. package/src/modules/configs/lib/__tests__/system-status.test.ts +0 -55
  291. package/src/modules/configs/lib/__tests__/upgrade-actions.test.ts +0 -135
  292. package/src/modules/core/__integration__/admin/TC-ADMIN-001.spec.ts +0 -70
  293. package/src/modules/core/__integration__/admin/TC-ADMIN-002.spec.ts +0 -83
  294. package/src/modules/core/__integration__/admin/TC-ADMIN-003.spec.ts +0 -50
  295. package/src/modules/core/__integration__/admin/TC-ADMIN-004.spec.ts +0 -77
  296. package/src/modules/core/__integration__/admin/TC-ADMIN-005.spec.ts +0 -49
  297. package/src/modules/core/__integration__/admin/TC-ADMIN-006.spec.ts +0 -59
  298. package/src/modules/core/__integration__/admin/TC-ADMIN-007.spec.ts +0 -68
  299. package/src/modules/core/__integration__/admin/TC-ADMIN-008.spec.ts +0 -127
  300. package/src/modules/core/__integration__/admin/TC-ADMIN-009.spec.ts +0 -48
  301. package/src/modules/core/__integration__/admin/TC-ADMIN-010.spec.ts +0 -57
  302. package/src/modules/core/__integration__/helpers/api.ts +0 -84
  303. package/src/modules/core/__integration__/helpers/auth.ts +0 -110
  304. package/src/modules/core/__integration__/helpers/authUi.ts +0 -33
  305. package/src/modules/core/__integration__/helpers/catalogFixtures.ts +0 -73
  306. package/src/modules/core/__integration__/helpers/crmFixtures.ts +0 -101
  307. package/src/modules/core/__integration__/helpers/salesFixtures.ts +0 -89
  308. package/src/modules/core/__integration__/helpers/salesUi.ts +0 -528
  309. package/src/modules/core/__integration__/integration/TC-INT-001.spec.ts +0 -34
  310. package/src/modules/core/__integration__/integration/TC-INT-002.spec.ts +0 -74
  311. package/src/modules/core/__integration__/integration/TC-INT-003.spec.ts +0 -43
  312. package/src/modules/core/__integration__/integration/TC-INT-004.spec.ts +0 -82
  313. package/src/modules/core/__integration__/integration/TC-INT-005.spec.ts +0 -29
  314. package/src/modules/currencies/backend/exchange-rates/__tests__/formatDateTimeLocal.test.ts +0 -78
  315. package/src/modules/currencies/data/__tests__/validators.test.ts +0 -100
  316. package/src/modules/currencies/services/__tests__/exchangeRateService.test.ts +0 -666
  317. package/src/modules/currencies/services/__tests__/rateFetchingService.basic.test.ts +0 -398
  318. package/src/modules/currencies/services/__tests__/rateFetchingService.errors.test.ts +0 -296
  319. package/src/modules/currencies/services/__tests__/rateFetchingService.providers.test.ts +0 -350
  320. package/src/modules/currencies/services/__tests__/rateFetchingService.setup.ts +0 -188
  321. package/src/modules/customers/__integration__/TC-CRM-001.spec.ts +0 -42
  322. package/src/modules/customers/__integration__/TC-CRM-002.spec.ts +0 -47
  323. package/src/modules/customers/__integration__/TC-CRM-003.spec.ts +0 -55
  324. package/src/modules/customers/__integration__/TC-CRM-004.spec.ts +0 -57
  325. package/src/modules/customers/__integration__/TC-CRM-005.spec.ts +0 -50
  326. package/src/modules/customers/__integration__/TC-CRM-006.spec.ts +0 -60
  327. package/src/modules/customers/__integration__/TC-CRM-007.spec.ts +0 -57
  328. package/src/modules/customers/__integration__/TC-CRM-008.spec.ts +0 -62
  329. package/src/modules/customers/__integration__/TC-CRM-009.spec.ts +0 -46
  330. package/src/modules/customers/__integration__/TC-CRM-010.spec.ts +0 -49
  331. package/src/modules/customers/__integration__/TC-CRM-011.spec.ts +0 -47
  332. package/src/modules/customers/__integration__/TC-CRM-012.spec.ts +0 -49
  333. package/src/modules/customers/__integration__/TC-CRM-013.spec.ts +0 -61
  334. package/src/modules/customers/__integration__/TC-CRM-014.spec.ts +0 -31
  335. package/src/modules/customers/__integration__/TC-CRM-015.spec.ts +0 -89
  336. package/src/modules/customers/__integration__/TC-CRM-016.spec.ts +0 -55
  337. package/src/modules/customers/__integration__/TC-CRM-017.spec.ts +0 -37
  338. package/src/modules/customers/__integration__/TC-CRM-018.spec.ts +0 -62
  339. package/src/modules/customers/__integration__/TC-CRM-019.spec.ts +0 -44
  340. package/src/modules/customers/__integration__/TC-CRM-020.spec.ts +0 -73
  341. package/src/modules/customers/api/__tests__/utils.test.ts +0 -61
  342. package/src/modules/customers/api/dashboard/widgets/new-deals/__tests__/route.test.ts +0 -54
  343. package/src/modules/customers/commands/__tests__/shared.test.ts +0 -263
  344. package/src/modules/customers/commands/__tests__/undo.custom-fields.test.ts +0 -1184
  345. package/src/modules/customers/components/detail/__tests__/ActivityForm.validation.test.ts +0 -37
  346. package/src/modules/customers/components/detail/__tests__/DealForm.validation.test.ts +0 -45
  347. package/src/modules/customers/components/detail/__tests__/InlineEditors.test.tsx +0 -166
  348. package/src/modules/customers/components/detail/__tests__/TaskForm.submit.test.ts +0 -21
  349. package/src/modules/customers/components/detail/hooks/__tests__/useCustomerDictionary.test.ts +0 -97
  350. package/src/modules/customers/lib/__tests__/customFieldRouting.test.ts +0 -107
  351. package/src/modules/customers/utils/__tests__/addressFormat.test.ts +0 -105
  352. package/src/modules/customers/utils/__tests__/phoneDuplicates.test.ts +0 -98
  353. package/src/modules/dashboards/__tests__/widgets.test.ts +0 -70
  354. package/src/modules/dashboards/lib/__tests__/aggregations.test.ts +0 -328
  355. package/src/modules/dashboards/lib/__tests__/formatters.test.ts +0 -128
  356. package/src/modules/directory/backend/directory/organizations/__tests__/create-submit.test.ts +0 -46
  357. package/src/modules/directory/backend/directory/organizations/__tests__/edit-submit.test.ts +0 -49
  358. package/src/modules/directory/components/__tests__/OrganizationSelect.test.tsx +0 -71
  359. package/src/modules/directory/components/__tests__/TenantSelect.test.tsx +0 -75
  360. package/src/modules/entities/__tests__/cli-decrypt-database.test.ts +0 -534
  361. package/src/modules/entities/__tests__/cli-rotate-encryption.test.ts +0 -123
  362. package/src/modules/entities/api/__tests__/encryption.api.test.ts +0 -57
  363. package/src/modules/entities/api/__tests__/records.get.custom-entity.test.ts +0 -43
  364. package/src/modules/entities/api/__tests__/records.validation.test.ts +0 -53
  365. package/src/modules/entities/backend/entities/user/__tests__/create-entity-submit.test.ts +0 -47
  366. package/src/modules/entities/backend/entities/user/__tests__/records-submit.test.ts +0 -104
  367. package/src/modules/feature_toggles/commands/__tests__/global.test.ts +0 -325
  368. package/src/modules/feature_toggles/commands/__tests__/overrides.test.ts +0 -186
  369. package/src/modules/feature_toggles/lib/__tests__/feature-flag-check.test.ts +0 -365
  370. package/src/modules/feature_toggles/lib/__tests__/queries.test.ts +0 -130
  371. package/src/modules/inbox_ops/api/emails/[id]/reprocess/__tests__/route.test.ts +0 -194
  372. package/src/modules/inbox_ops/api/proposals/[id]/__tests__/route.test.ts +0 -124
  373. package/src/modules/inbox_ops/api/proposals/[id]/accept-all/__tests__/route.test.ts +0 -154
  374. package/src/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/__tests__/route.test.ts +0 -200
  375. package/src/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/accept/__tests__/route.test.ts +0 -261
  376. package/src/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/reject/__tests__/route.test.ts +0 -201
  377. package/src/modules/inbox_ops/api/proposals/[id]/reject/__tests__/route.test.ts +0 -123
  378. package/src/modules/inbox_ops/api/proposals/[id]/replies/[replyId]/send/__tests__/route.test.ts +0 -232
  379. package/src/modules/inbox_ops/api/proposals/[id]/translate/__tests__/route.test.ts +0 -173
  380. package/src/modules/inbox_ops/api/proposals/__tests__/route.test.ts +0 -185
  381. package/src/modules/inbox_ops/api/webhook/__tests__/inbound.test.ts +0 -317
  382. package/src/modules/inbox_ops/data/__tests__/validators.test.ts +0 -463
  383. package/src/modules/inbox_ops/lib/__tests__/catalogLookup.test.ts +0 -143
  384. package/src/modules/inbox_ops/lib/__tests__/contactMatcher.test.ts +0 -158
  385. package/src/modules/inbox_ops/lib/__tests__/emailParser.test.ts +0 -191
  386. package/src/modules/inbox_ops/lib/__tests__/executionEngine.test.ts +0 -1419
  387. package/src/modules/inbox_ops/lib/__tests__/extractionPrompt.test.ts +0 -151
  388. package/src/modules/inbox_ops/lib/__tests__/priceValidator.test.ts +0 -259
  389. package/src/modules/inbox_ops/lib/__tests__/translationProvider.test.ts +0 -99
  390. package/src/modules/inbox_ops/subscribers/__tests__/extractionWorker.test.ts +0 -803
  391. package/src/modules/notifications/__tests__/deliver-notification.test.ts +0 -285
  392. package/src/modules/notifications/__tests__/deliveryStrategies.test.ts +0 -19
  393. package/src/modules/notifications/__tests__/notificationService.test.ts +0 -248
  394. package/src/modules/planner/__tests__/availabilityMerge.test.ts +0 -99
  395. package/src/modules/planner/__tests__/plannerAvailabilityService.test.ts +0 -89
  396. package/src/modules/planner/data/__tests__/validators.test.ts +0 -78
  397. package/src/modules/progress/__integration__/TC-PROG-001.spec.ts +0 -67
  398. package/src/modules/progress/__tests__/progressService.test.ts +0 -377
  399. package/src/modules/query_index/__tests__/hybrid-engine.test.ts +0 -365
  400. package/src/modules/query_index/__tests__/indexer.test.ts +0 -175
  401. package/src/modules/resources/__integration__/TC-INT-007.spec.ts +0 -110
  402. package/src/modules/resources/__integration__/helpers/resourcesFixtures.ts +0 -50
  403. package/src/modules/resources/data/__tests__/validators.test.ts +0 -65
  404. package/src/modules/sales/__integration__/TC-SALES-001.spec.ts +0 -26
  405. package/src/modules/sales/__integration__/TC-SALES-002.spec.ts +0 -38
  406. package/src/modules/sales/__integration__/TC-SALES-003.spec.ts +0 -18
  407. package/src/modules/sales/__integration__/TC-SALES-004.spec.ts +0 -19
  408. package/src/modules/sales/__integration__/TC-SALES-005.spec.ts +0 -21
  409. package/src/modules/sales/__integration__/TC-SALES-006.spec.ts +0 -26
  410. package/src/modules/sales/__integration__/TC-SALES-007.spec.ts +0 -23
  411. package/src/modules/sales/__integration__/TC-SALES-008.spec.ts +0 -11
  412. package/src/modules/sales/__integration__/TC-SALES-009.spec.ts +0 -12
  413. package/src/modules/sales/__integration__/TC-SALES-010.spec.ts +0 -20
  414. package/src/modules/sales/__integration__/TC-SALES-011.spec.ts +0 -26
  415. package/src/modules/sales/__integration__/TC-SALES-012.spec.ts +0 -12
  416. package/src/modules/sales/__integration__/TC-SALES-013.spec.ts +0 -73
  417. package/src/modules/sales/__integration__/TC-SALES-014.spec.ts +0 -17
  418. package/src/modules/sales/__integration__/TC-SALES-015.spec.ts +0 -17
  419. package/src/modules/sales/__integration__/TC-SALES-016.spec.ts +0 -17
  420. package/src/modules/sales/__integration__/TC-SALES-017.spec.ts +0 -60
  421. package/src/modules/sales/__integration__/TC-SALES-018.spec.ts +0 -25
  422. package/src/modules/sales/__integration__/TC-SALES-019.spec.ts +0 -22
  423. package/src/modules/sales/__integration__/TC-SALES-020.spec.ts +0 -107
  424. package/src/modules/sales/api/__tests__/channels.route.test.ts +0 -50
  425. package/src/modules/sales/api/__tests__/document-history.test.ts +0 -146
  426. package/src/modules/sales/api/__tests__/documents.factory.test.ts +0 -98
  427. package/src/modules/sales/api/__tests__/documents.routes.test.ts +0 -149
  428. package/src/modules/sales/api/__tests__/quotes.acceptance.test.ts +0 -209
  429. package/src/modules/sales/api/__tests__/timeline.test.tsx +0 -165
  430. package/src/modules/sales/api/dashboard/widgets/new-orders/__tests__/route.test.ts +0 -112
  431. package/src/modules/sales/api/dashboard/widgets/new-quotes/__tests__/route.test.ts +0 -116
  432. package/src/modules/sales/commands/__tests__/documents.cache.test.ts +0 -126
  433. package/src/modules/sales/commands/__tests__/documents.undo.test.ts +0 -170
  434. package/src/modules/sales/commands/__tests__/registration.test.ts +0 -141
  435. package/src/modules/sales/components/__tests__/salesComponentsRender.test.tsx +0 -456
  436. package/src/modules/sales/lib/__tests__/calculations.test.ts +0 -210
  437. package/src/modules/sales/services/__tests__/salesCalculationService.test.ts +0 -181
  438. package/src/modules/sales/services/__tests__/taxCalculationService.test.ts +0 -79
  439. package/src/modules/sales/widgets/dashboard/new-orders/__tests__/config.test.ts +0 -47
  440. package/src/modules/sales/widgets/dashboard/new-quotes/__tests__/config.test.ts +0 -47
  441. package/src/modules/staff/__integration__/TC-INT-006.spec.ts +0 -71
  442. package/src/modules/staff/data/__tests__/validators.test.ts +0 -60
  443. package/src/modules/translations/__integration__/TC-TRANS-001.spec.ts +0 -57
  444. package/src/modules/translations/__integration__/TC-TRANS-002.spec.ts +0 -114
  445. package/src/modules/translations/__integration__/TC-TRANS-003.spec.ts +0 -71
  446. package/src/modules/translations/__integration__/TC-TRANS-004.spec.ts +0 -66
  447. package/src/modules/translations/__integration__/TC-TRANS-005.spec.ts +0 -135
  448. package/src/modules/translations/__integration__/TC-TRANS-006.spec.ts +0 -113
  449. package/src/modules/translations/__integration__/TC-TRANS-007.spec.ts +0 -80
  450. package/src/modules/translations/__integration__/TC-TRANS-008.spec.ts +0 -209
  451. package/src/modules/translations/__integration__/helpers/translationFixtures.ts +0 -95
  452. package/src/modules/translations/api/__tests__/locales.test.ts +0 -67
  453. package/src/modules/translations/data/__tests__/validators.test.ts +0 -143
  454. package/src/modules/translations/lib/__tests__/extract-record-id.test.ts +0 -75
  455. package/src/modules/translations/lib/__tests__/helpers.test.ts +0 -215
  456. package/src/modules/translations/lib/__tests__/locale.test.ts +0 -115
  457. package/src/modules/translations/lib/__tests__/resolve-field-list.test.ts +0 -176
  458. package/src/modules/translations/lib/__tests__/translatable-fields.test.ts +0 -79
  459. package/src/modules/translations/widgets/__tests__/injection-table.test.ts +0 -83
  460. package/src/modules/workflows/__integration__/TC-WF-001.spec.ts +0 -114
  461. package/src/modules/workflows/api/__tests__/definitions.route.test.ts +0 -762
  462. package/src/modules/workflows/api/__tests__/instances.route.test.ts +0 -869
  463. package/src/modules/workflows/data/__tests__/validators.test.ts +0 -707
  464. package/src/modules/workflows/lib/__tests__/activity-executor.test.ts +0 -1230
  465. package/src/modules/workflows/lib/__tests__/call-api.test.ts +0 -421
  466. package/src/modules/workflows/lib/__tests__/compensation.test.ts +0 -713
  467. package/src/modules/workflows/lib/__tests__/event-logger.test.ts +0 -615
  468. package/src/modules/workflows/lib/__tests__/integration.test.ts +0 -693
  469. package/src/modules/workflows/lib/__tests__/signals.test.ts +0 -566
  470. package/src/modules/workflows/lib/__tests__/step-handler.test.ts +0 -670
  471. package/src/modules/workflows/lib/__tests__/sub-workflow.test.ts +0 -934
  472. package/src/modules/workflows/lib/__tests__/transition-handler.test.ts +0 -925
  473. package/src/modules/workflows/lib/__tests__/workflow-executor.test.ts +0 -684
@@ -1,181 +0,0 @@
1
- import type { SalesLineSnapshot } from '../../lib/types'
2
- import {
3
- registerSalesLineCalculator,
4
- registerSalesTotalsCalculator,
5
- salesCalculations,
6
- } from '../../lib/calculations'
7
- import { DefaultSalesCalculationService } from '../salesCalculationService'
8
-
9
- describe('DefaultSalesCalculationService', () => {
10
- const context = { tenantId: 'tenant-1', organizationId: 'org-1', currencyCode: 'USD' }
11
- const baseLine: SalesLineSnapshot = {
12
- kind: 'product',
13
- quantity: 1,
14
- currencyCode: 'USD',
15
- unitPriceNet: 10,
16
- }
17
-
18
- afterEach(() => {
19
- jest.restoreAllMocks()
20
- })
21
-
22
- it('delegates line calculations to the registry and forwards the event bus', async () => {
23
- const calculateLineMock = jest
24
- .spyOn(salesCalculations, 'calculateLine')
25
- .mockResolvedValue({
26
- line: baseLine,
27
- netAmount: 10,
28
- grossAmount: 12,
29
- taxAmount: 2,
30
- discountAmount: 0,
31
- adjustments: [],
32
- })
33
-
34
- const eventBus = { emitEvent: jest.fn() }
35
- const service = new DefaultSalesCalculationService(eventBus as any)
36
-
37
- const result = await service.calculateLine({
38
- documentKind: 'order',
39
- line: baseLine,
40
- context,
41
- })
42
-
43
- expect(calculateLineMock).toHaveBeenCalledWith({
44
- documentKind: 'order',
45
- line: baseLine,
46
- context,
47
- eventBus,
48
- })
49
- expect(result.grossAmount).toBe(12)
50
- })
51
-
52
- it('delegates document totals calculation with adjustments and existing totals', async () => {
53
- const calculateDocumentMock = jest.spyOn(salesCalculations, 'calculateDocument').mockResolvedValue({
54
- kind: 'invoice',
55
- currencyCode: 'USD',
56
- lines: [],
57
- adjustments: [],
58
- metadata: {},
59
- totals: {
60
- subtotalNetAmount: 0,
61
- subtotalGrossAmount: 0,
62
- discountTotalAmount: 0,
63
- taxTotalAmount: 0,
64
- shippingNetAmount: 0,
65
- shippingGrossAmount: 0,
66
- surchargeTotalAmount: 0,
67
- grandTotalNetAmount: 0,
68
- grandTotalGrossAmount: 0,
69
- paidTotalAmount: 5,
70
- refundedTotalAmount: 0,
71
- outstandingAmount: 0,
72
- },
73
- })
74
-
75
- const eventBus = { emitEvent: jest.fn() }
76
- const service = new DefaultSalesCalculationService(eventBus as any)
77
-
78
- await service.calculateDocumentTotals({
79
- documentKind: 'invoice',
80
- lines: [],
81
- adjustments: [],
82
- existingTotals: { paidTotalAmount: 5, refundedTotalAmount: 1 },
83
- context,
84
- })
85
-
86
- expect(calculateDocumentMock).toHaveBeenCalledWith({
87
- documentKind: 'invoice',
88
- lines: [],
89
- adjustments: [],
90
- existingTotals: { paidTotalAmount: 5, refundedTotalAmount: 1 },
91
- context,
92
- eventBus,
93
- })
94
- })
95
-
96
- it('runs registered calculators and event bus hooks when calculating totals', async () => {
97
- const events: string[] = []
98
- const eventBus = {
99
- emitEvent: jest.fn(async (event: string, payload: any) => {
100
- events.push(event)
101
- if (event === 'sales.document.calculate.after') {
102
- payload.setResult({
103
- ...payload.result,
104
- totals: {
105
- ...payload.result.totals,
106
- grandTotalGrossAmount: payload.result.totals.grandTotalGrossAmount + 3,
107
- outstandingAmount: payload.result.totals.outstandingAmount + 3,
108
- },
109
- })
110
- }
111
- }),
112
- }
113
- const service = new DefaultSalesCalculationService(eventBus as any)
114
-
115
- const line: SalesLineSnapshot = {
116
- kind: 'product',
117
- quantity: 2,
118
- currencyCode: 'USD',
119
- unitPriceNet: 50,
120
- taxRate: 20,
121
- }
122
- const adjustments = [
123
- {
124
- scope: 'order' as const,
125
- kind: 'shipping' as const,
126
- amountNet: 10,
127
- amountGross: 12,
128
- currencyCode: 'USD',
129
- metadata: { taxRate: 20 },
130
- },
131
- ]
132
-
133
- const lineHook = jest.fn(({ current }) => ({
134
- ...current,
135
- netAmount: current.netAmount + 5,
136
- grossAmount: current.grossAmount + 6,
137
- taxAmount: current.taxAmount + 1,
138
- }))
139
- const totalsHook = jest.fn(({ current }) => ({
140
- ...current,
141
- totals: {
142
- ...current.totals,
143
- surchargeTotalAmount: current.totals.surchargeTotalAmount + 4,
144
- grandTotalNetAmount: current.totals.grandTotalNetAmount + 4,
145
- grandTotalGrossAmount: current.totals.grandTotalGrossAmount + 4,
146
- outstandingAmount: current.totals.outstandingAmount + 4,
147
- },
148
- }))
149
-
150
- const unregisterLine = registerSalesLineCalculator(lineHook, { prepend: true })
151
- const unregisterTotals = registerSalesTotalsCalculator(totalsHook, { prepend: true })
152
-
153
- const result = await service.calculateDocumentTotals({
154
- documentKind: 'order',
155
- lines: [line],
156
- adjustments,
157
- context,
158
- })
159
-
160
- unregisterLine()
161
- unregisterTotals()
162
-
163
- expect(lineHook).toHaveBeenCalled()
164
- expect(totalsHook).toHaveBeenCalled()
165
- expect(events).toEqual([
166
- 'sales.line.calculate.before',
167
- 'sales.line.calculate.after',
168
- 'sales.document.calculate.before',
169
- 'sales.document.calculate.after',
170
- ])
171
- expect(result.lines[0].netAmount).toBeCloseTo(105, 5)
172
- expect(result.lines[0].grossAmount).toBeCloseTo(126, 5)
173
- expect(result.lines[0].taxAmount).toBeCloseTo(21, 5)
174
- expect(result.totals.shippingGrossAmount).toBeCloseTo(12, 5)
175
- expect(result.totals.surchargeTotalAmount).toBeCloseTo(4, 5)
176
- expect(result.totals.taxTotalAmount).toBeCloseTo(23, 5)
177
- expect(result.totals.grandTotalNetAmount).toBeCloseTo(119, 5)
178
- expect(result.totals.grandTotalGrossAmount).toBeCloseTo(145, 5)
179
- expect(result.totals.outstandingAmount).toBeCloseTo(145, 5)
180
- })
181
- })
@@ -1,79 +0,0 @@
1
- import { CrudHttpError } from '@open-mercato/shared/lib/crud/errors'
2
- import { DefaultTaxCalculationService } from '../taxCalculationService'
3
-
4
- describe('DefaultTaxCalculationService', () => {
5
- const baseInput = {
6
- amount: 100,
7
- mode: 'net' as const,
8
- organizationId: 'org-1',
9
- tenantId: 'tenant-1',
10
- }
11
-
12
- it('resolves rates via identifier and calculates gross amounts', async () => {
13
- const em = {
14
- findOne: jest.fn().mockResolvedValue({ rate: 20 }),
15
- }
16
- const service = new DefaultTaxCalculationService(em as any)
17
- const result = await service.calculateUnitAmounts({ ...baseInput, taxRateId: 'rate-1' })
18
-
19
- expect(result).toEqual({
20
- netAmount: 100,
21
- grossAmount: 120,
22
- taxAmount: 20,
23
- taxRate: 20,
24
- })
25
- expect(em.findOne).toHaveBeenCalled()
26
- })
27
-
28
- it('throws when the referenced tax class cannot be found', async () => {
29
- const em = { findOne: jest.fn().mockResolvedValue(null) }
30
- const service = new DefaultTaxCalculationService(em as any)
31
-
32
- await expect(service.calculateUnitAmounts({ ...baseInput, taxRateId: 'missing' })).rejects.toBeInstanceOf(CrudHttpError)
33
- expect(em.findOne).toHaveBeenCalled()
34
- })
35
-
36
- it('calculates net from gross amounts when rate provided inline', async () => {
37
- const em = { findOne: jest.fn() }
38
- const service = new DefaultTaxCalculationService(em as any)
39
- const result = await service.calculateUnitAmounts({ ...baseInput, amount: 120, mode: 'gross', taxRate: '5.5' })
40
-
41
- expect(result.netAmount).toBeCloseTo(113.7441, 4)
42
- expect(result.taxAmount).toBeCloseTo(6.2559, 4)
43
- expect(result.taxRate).toBe(5.5)
44
- expect(em.findOne).not.toHaveBeenCalled()
45
- })
46
-
47
- it('throws for invalid amount or mode', async () => {
48
- const em = { findOne: jest.fn() }
49
- const service = new DefaultTaxCalculationService(em as any)
50
-
51
- await expect(service.calculateUnitAmounts({ ...baseInput, amount: -1 })).rejects.toBeInstanceOf(CrudHttpError)
52
- await expect(service.calculateUnitAmounts({ ...baseInput, mode: 'unknown' as any })).rejects.toBeInstanceOf(CrudHttpError)
53
- })
54
-
55
- it('honors event bus hooks to mutate input and override results', async () => {
56
- const em = { findOne: jest.fn() }
57
- const before = jest.fn()
58
- const after = jest.fn()
59
- const eventBus = {
60
- emitEvent: jest.fn(async (event: string, payload: any) => {
61
- if (event === 'sales.tax.calculate.before') {
62
- before()
63
- payload.setInput({ taxRate: 10, taxRateId: null })
64
- } else if (event === 'sales.tax.calculate.after') {
65
- after()
66
- payload.setResult({ netAmount: 10, grossAmount: 11, taxAmount: 1, taxRate: 10 })
67
- }
68
- }),
69
- }
70
- const service = new DefaultTaxCalculationService(em as any, eventBus as any)
71
-
72
- const result = await service.calculateUnitAmounts({ ...baseInput, amount: 10, taxRateId: 'ignored' })
73
-
74
- expect(result).toEqual({ netAmount: 10, grossAmount: 11, taxAmount: 1, taxRate: 10 })
75
- expect(before).toHaveBeenCalled()
76
- expect(after).toHaveBeenCalled()
77
- expect(em.findOne).not.toHaveBeenCalled()
78
- })
79
- })
@@ -1,47 +0,0 @@
1
- import { DEFAULT_SETTINGS, hydrateSalesNewOrdersSettings } from '../config'
2
-
3
- describe('sales new-orders widget config', () => {
4
- it('returns defaults for empty input', () => {
5
- expect(hydrateSalesNewOrdersSettings(undefined)).toEqual(DEFAULT_SETTINGS)
6
- expect(hydrateSalesNewOrdersSettings(null)).toEqual(DEFAULT_SETTINGS)
7
- })
8
-
9
- it('clamps invalid pageSize and invalid period to defaults', () => {
10
- expect(hydrateSalesNewOrdersSettings({ pageSize: 999, datePeriod: 'invalid' as never })).toEqual({
11
- pageSize: DEFAULT_SETTINGS.pageSize,
12
- datePeriod: DEFAULT_SETTINGS.datePeriod,
13
- customFrom: undefined,
14
- customTo: undefined,
15
- })
16
- })
17
-
18
- it('keeps valid custom range only when dates are valid', () => {
19
- expect(
20
- hydrateSalesNewOrdersSettings({
21
- pageSize: 10,
22
- datePeriod: 'custom',
23
- customFrom: '2026-01-01T00:00:00.000Z',
24
- customTo: '2026-01-31T23:59:59.000Z',
25
- })
26
- ).toEqual({
27
- pageSize: 10,
28
- datePeriod: 'custom',
29
- customFrom: '2026-01-01T00:00:00.000Z',
30
- customTo: '2026-01-31T23:59:59.000Z',
31
- })
32
-
33
- expect(
34
- hydrateSalesNewOrdersSettings({
35
- pageSize: 5,
36
- datePeriod: 'custom',
37
- customFrom: 'not-a-date',
38
- customTo: '2026-01-31T23:59:59.000Z',
39
- })
40
- ).toEqual({
41
- pageSize: 5,
42
- datePeriod: 'custom',
43
- customFrom: undefined,
44
- customTo: '2026-01-31T23:59:59.000Z',
45
- })
46
- })
47
- })
@@ -1,47 +0,0 @@
1
- import { DEFAULT_SETTINGS, hydrateSalesNewQuotesSettings } from '../config'
2
-
3
- describe('sales new-quotes widget config', () => {
4
- it('returns defaults for empty input', () => {
5
- expect(hydrateSalesNewQuotesSettings(undefined)).toEqual(DEFAULT_SETTINGS)
6
- expect(hydrateSalesNewQuotesSettings(null)).toEqual(DEFAULT_SETTINGS)
7
- })
8
-
9
- it('clamps invalid pageSize and invalid period to defaults', () => {
10
- expect(hydrateSalesNewQuotesSettings({ pageSize: 0, datePeriod: 'invalid' as never })).toEqual({
11
- pageSize: DEFAULT_SETTINGS.pageSize,
12
- datePeriod: DEFAULT_SETTINGS.datePeriod,
13
- customFrom: undefined,
14
- customTo: undefined,
15
- })
16
- })
17
-
18
- it('keeps valid custom range only when dates are valid', () => {
19
- expect(
20
- hydrateSalesNewQuotesSettings({
21
- pageSize: 8,
22
- datePeriod: 'custom',
23
- customFrom: '2026-02-01T00:00:00.000Z',
24
- customTo: '2026-02-28T23:59:59.000Z',
25
- })
26
- ).toEqual({
27
- pageSize: 8,
28
- datePeriod: 'custom',
29
- customFrom: '2026-02-01T00:00:00.000Z',
30
- customTo: '2026-02-28T23:59:59.000Z',
31
- })
32
-
33
- expect(
34
- hydrateSalesNewQuotesSettings({
35
- pageSize: 8,
36
- datePeriod: 'custom',
37
- customFrom: '2026-02-01T00:00:00.000Z',
38
- customTo: 'not-a-date',
39
- })
40
- ).toEqual({
41
- pageSize: 8,
42
- datePeriod: 'custom',
43
- customFrom: '2026-02-01T00:00:00.000Z',
44
- customTo: undefined,
45
- })
46
- })
47
- })
@@ -1,71 +0,0 @@
1
- import { expect, test } from '@playwright/test';
2
- import { login } from '@open-mercato/core/modules/core/__integration__/helpers/auth';
3
- import { apiRequest, getAuthToken } from '@open-mercato/core/modules/core/__integration__/helpers/api';
4
-
5
- /**
6
- * TC-INT-006: Embedded Settings Headings on Resource and Team Member Detail
7
- */
8
- test.describe('TC-INT-006: Embedded Settings Headings on Resource and Team Member Detail', () => {
9
- test('should render embedded settings sections without the old edit-form header rows', async ({ page, request }) => {
10
- test.setTimeout(25_000);
11
- const stamp = Date.now();
12
- const resourceName = `QA Resource ${stamp}`;
13
- const memberName = `QA Team Member ${stamp}`;
14
-
15
- let token: string | null = null;
16
- let resourceId: string | null = null;
17
- let teamMemberId: string | null = null;
18
-
19
- try {
20
- token = await getAuthToken(request, 'admin');
21
- await login(page, 'admin');
22
-
23
- const resourceCreateResponse = await apiRequest(request, 'POST', '/api/resources/resources', {
24
- token,
25
- data: { name: resourceName },
26
- });
27
- expect(resourceCreateResponse.ok(), 'Resource fixture should be created').toBeTruthy();
28
- const resourceCreateBody = (await resourceCreateResponse.json()) as { id?: string | null };
29
- resourceId = typeof resourceCreateBody.id === 'string' ? resourceCreateBody.id : null;
30
- expect(resourceId, 'Resource id should be returned by create response').toBeTruthy();
31
-
32
- const teamMemberCreateResponse = await apiRequest(request, 'POST', '/api/staff/team-members', {
33
- token,
34
- data: { displayName: memberName },
35
- });
36
- expect(teamMemberCreateResponse.ok(), 'Team member fixture should be created').toBeTruthy();
37
- const teamMemberCreateBody = (await teamMemberCreateResponse.json()) as { id?: string | null };
38
- teamMemberId = typeof teamMemberCreateBody.id === 'string' ? teamMemberCreateBody.id : null;
39
- expect(teamMemberId, 'Team member id should be returned by create response').toBeTruthy();
40
-
41
- await page.goto(`/backend/resources/resources/${encodeURIComponent(resourceId ?? '')}`);
42
- const resourceSettingsHeading = page.getByRole('heading', {
43
- name: /resource settings|ressourceneinstellungen|configuraci\u00f3n del recurso|ustawienia zasobu/i,
44
- });
45
- await expect(resourceSettingsHeading).toBeVisible();
46
- const resourceCard = page.locator('div.rounded-lg.border.bg-card.p-4').filter({ has: resourceSettingsHeading }).first();
47
- await expect(resourceCard.locator('button[type="submit"]')).toBeVisible({ timeout: 45_000 });
48
- await expect(resourceCard.getByText(/edit resource|ressource bearbeiten|editar recurso|edytuj zas\u00f3b/i)).toHaveCount(0);
49
-
50
- await page.goto(`/backend/staff/team-members/${encodeURIComponent(teamMemberId ?? '')}`);
51
- const memberSettingsHeading = page.getByRole('heading', {
52
- name: /member settings|mitgliedseinstellungen|configuraci\u00f3n del miembro|ustawienia cz\u0142onka/i,
53
- });
54
- await expect(memberSettingsHeading).toBeVisible();
55
- const memberCard = page.locator('div.rounded-lg.border.bg-card.p-4').filter({ has: memberSettingsHeading }).first();
56
- await expect(memberCard.locator('button[type="submit"]')).toBeVisible({ timeout: 45_000 });
57
- await expect(memberCard.getByText(/edit team member|teammitglied bearbeiten|editar miembro|edytuj cz\u0142onka/i)).toHaveCount(0);
58
- } finally {
59
- if (token && resourceId) {
60
- await apiRequest(request, 'DELETE', `/api/resources/resources?id=${encodeURIComponent(resourceId)}`, {
61
- token,
62
- }).catch(() => {});
63
- }
64
- if (token && teamMemberId) {
65
- await apiRequest(request, 'DELETE', `/api/staff/team-members?id=${encodeURIComponent(teamMemberId)}`, {
66
- token,
67
- }).catch(() => {});
68
- }
69
- }
70
- });
71
- });
@@ -1,60 +0,0 @@
1
- import { describe, expect, test } from '@jest/globals'
2
- import {
3
- staffLeaveRequestCreateSchema,
4
- staffTeamMemberCreateSchema,
5
- staffTeamRoleCreateSchema,
6
- } from '../validators'
7
-
8
- const tenantId = '123e4567-e89b-12d3-a456-426614174000'
9
- const organizationId = '123e4567-e89b-12d3-a456-426614174001'
10
-
11
- describe('Staff validators', () => {
12
- test('staffTeamMemberCreateSchema applies default arrays', () => {
13
- const result = staffTeamMemberCreateSchema.parse({
14
- tenantId,
15
- organizationId,
16
- displayName: 'Taylor Doe',
17
- })
18
-
19
- expect(result.roleIds).toEqual([])
20
- expect(result.tags).toEqual([])
21
- })
22
-
23
- test('staffLeaveRequestCreateSchema rejects inverted date ranges', () => {
24
- expect(() =>
25
- staffLeaveRequestCreateSchema.parse({
26
- tenantId,
27
- organizationId,
28
- memberId: '123e4567-e89b-12d3-a456-426614174002',
29
- timezone: 'UTC',
30
- startDate: '2025-02-10',
31
- endDate: '2025-02-09',
32
- }),
33
- ).toThrow()
34
- })
35
-
36
- test('staffLeaveRequestCreateSchema accepts valid date ranges', () => {
37
- const result = staffLeaveRequestCreateSchema.parse({
38
- tenantId,
39
- organizationId,
40
- memberId: '123e4567-e89b-12d3-a456-426614174002',
41
- timezone: 'UTC',
42
- startDate: '2025-02-09',
43
- endDate: '2025-02-10',
44
- })
45
-
46
- expect(result.startDate).toBeInstanceOf(Date)
47
- expect(result.endDate).toBeInstanceOf(Date)
48
- })
49
-
50
- test('staffTeamRoleCreateSchema validates appearanceColor', () => {
51
- expect(() =>
52
- staffTeamRoleCreateSchema.parse({
53
- tenantId,
54
- organizationId,
55
- name: 'Lead',
56
- appearanceColor: '#FFFFF',
57
- }),
58
- ).toThrow()
59
- })
60
- })
@@ -1,57 +0,0 @@
1
- import { expect, test } from '@playwright/test'
2
- import { apiRequest, getAuthToken } from '@open-mercato/core/modules/core/__integration__/helpers/api'
3
- import { getLocales, setLocales } from './helpers/translationFixtures'
4
-
5
- /**
6
- * TC-TRANS-001: Locale Configuration CRUD
7
- * Covers GET/PUT /api/translations/locales — read defaults, update, validation.
8
- */
9
- test.describe('TC-TRANS-001: Locale Configuration CRUD', () => {
10
- test('should return default locales for authenticated user', async ({ request }) => {
11
- const token = await getAuthToken(request, 'superadmin')
12
- const response = await apiRequest(request, 'GET', '/api/translations/locales', { token })
13
-
14
- expect(response.ok()).toBeTruthy()
15
- const body = (await response.json()) as { locales: string[] }
16
- expect(Array.isArray(body.locales)).toBeTruthy()
17
- expect(body.locales.length).toBeGreaterThan(0)
18
- })
19
-
20
- test('should update locales and confirm via GET', async ({ request }) => {
21
- const token = await getAuthToken(request, 'superadmin')
22
- const originalLocales = await getLocales(request, token)
23
-
24
- try {
25
- const putResponse = await apiRequest(request, 'PUT', '/api/translations/locales', {
26
- token,
27
- data: { locales: ['en', 'de', 'fr'] },
28
- })
29
- expect(putResponse.ok()).toBeTruthy()
30
- const putBody = (await putResponse.json()) as { locales: string[] }
31
- expect(putBody.locales).toEqual(['en', 'de', 'fr'])
32
-
33
- const confirmedLocales = await getLocales(request, token)
34
- expect(confirmedLocales).toEqual(['en', 'de', 'fr'])
35
- } finally {
36
- await setLocales(request, token, originalLocales).catch(() => {})
37
- }
38
- })
39
-
40
- test('should reject invalid ISO 639-1 codes with 400', async ({ request }) => {
41
- const token = await getAuthToken(request, 'superadmin')
42
- const response = await apiRequest(request, 'PUT', '/api/translations/locales', {
43
- token,
44
- data: { locales: ['en', 'xx'] },
45
- })
46
- expect(response.status()).toBe(400)
47
- })
48
-
49
- test('should reject empty locales array with 400', async ({ request }) => {
50
- const token = await getAuthToken(request, 'superadmin')
51
- const response = await apiRequest(request, 'PUT', '/api/translations/locales', {
52
- token,
53
- data: { locales: [] },
54
- })
55
- expect(response.status()).toBe(400)
56
- })
57
- })
@@ -1,114 +0,0 @@
1
- import { expect, test } from '@playwright/test'
2
- import { apiRequest, getAuthToken } from '@open-mercato/core/modules/core/__integration__/helpers/api'
3
- import { createProductFixture, deleteCatalogProductIfExists } from '@open-mercato/core/modules/core/__integration__/helpers/catalogFixtures'
4
- import { deleteTranslationIfExists } from './helpers/translationFixtures'
5
-
6
- const ENTITY_TYPE = 'catalog:catalog_product'
7
-
8
- /**
9
- * TC-TRANS-002: Translation CRUD Lifecycle
10
- * Covers GET/PUT/DELETE /api/translations/:entityType/:entityId — full create-read-update-delete flow.
11
- */
12
- test.describe('TC-TRANS-002: Translation CRUD Lifecycle', () => {
13
- test('should return 404 for non-existent translation', async ({ request }) => {
14
- const adminToken = await getAuthToken(request, 'admin')
15
- const saToken = await getAuthToken(request, 'superadmin')
16
- const productTitle = `QA TC-TRANS-002-1 ${Date.now()}`
17
- const sku = `QA-TRANS-002-1-${Date.now()}`
18
- let productId: string | null = null
19
-
20
- try {
21
- productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
22
- const response = await apiRequest(request, 'GET', `/api/translations/${ENTITY_TYPE}/${productId}`, { token: saToken })
23
- expect(response.status()).toBe(404)
24
- } finally {
25
- await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
26
- await deleteCatalogProductIfExists(request, adminToken, productId)
27
- }
28
- })
29
-
30
- test('should create and retrieve a translation', async ({ request }) => {
31
- const adminToken = await getAuthToken(request, 'admin')
32
- const saToken = await getAuthToken(request, 'superadmin')
33
- const productTitle = `QA TC-TRANS-002-2 ${Date.now()}`
34
- const sku = `QA-TRANS-002-2-${Date.now()}`
35
- let productId: string | null = null
36
-
37
- try {
38
- productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
39
-
40
- const putResponse = await apiRequest(request, 'PUT', `/api/translations/${ENTITY_TYPE}/${productId}`, {
41
- token: saToken,
42
- data: { de: { title: 'Deutscher Titel' } },
43
- })
44
- expect(putResponse.ok()).toBeTruthy()
45
- const putBody = (await putResponse.json()) as { translations: Record<string, Record<string, string>> }
46
- expect(putBody.translations.de.title).toBe('Deutscher Titel')
47
-
48
- const getResponse = await apiRequest(request, 'GET', `/api/translations/${ENTITY_TYPE}/${productId}`, { token: saToken })
49
- expect(getResponse.ok()).toBeTruthy()
50
- const getBody = (await getResponse.json()) as { translations: Record<string, Record<string, string>> }
51
- expect(getBody.translations.de.title).toBe('Deutscher Titel')
52
- } finally {
53
- await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
54
- await deleteCatalogProductIfExists(request, adminToken, productId)
55
- }
56
- })
57
-
58
- test('should upsert translations (add locale, update existing)', async ({ request }) => {
59
- const adminToken = await getAuthToken(request, 'admin')
60
- const saToken = await getAuthToken(request, 'superadmin')
61
- const productTitle = `QA TC-TRANS-002-3 ${Date.now()}`
62
- const sku = `QA-TRANS-002-3-${Date.now()}`
63
- let productId: string | null = null
64
-
65
- try {
66
- productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
67
-
68
- await apiRequest(request, 'PUT', `/api/translations/${ENTITY_TYPE}/${productId}`, {
69
- token: saToken,
70
- data: { de: { title: 'Original' } },
71
- })
72
-
73
- const upsertResponse = await apiRequest(request, 'PUT', `/api/translations/${ENTITY_TYPE}/${productId}`, {
74
- token: saToken,
75
- data: { de: { title: 'Aktualisiert' }, fr: { title: 'Titre Français' } },
76
- })
77
- expect(upsertResponse.ok()).toBeTruthy()
78
-
79
- const getResponse = await apiRequest(request, 'GET', `/api/translations/${ENTITY_TYPE}/${productId}`, { token: saToken })
80
- const body = (await getResponse.json()) as { translations: Record<string, Record<string, string>> }
81
- expect(body.translations.de.title).toBe('Aktualisiert')
82
- expect(body.translations.fr.title).toBe('Titre Français')
83
- } finally {
84
- await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
85
- await deleteCatalogProductIfExists(request, adminToken, productId)
86
- }
87
- })
88
-
89
- test('should delete translations and confirm 404', async ({ request }) => {
90
- const adminToken = await getAuthToken(request, 'admin')
91
- const saToken = await getAuthToken(request, 'superadmin')
92
- const productTitle = `QA TC-TRANS-002-4 ${Date.now()}`
93
- const sku = `QA-TRANS-002-4-${Date.now()}`
94
- let productId: string | null = null
95
-
96
- try {
97
- productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
98
-
99
- await apiRequest(request, 'PUT', `/api/translations/${ENTITY_TYPE}/${productId}`, {
100
- token: saToken,
101
- data: { de: { title: 'Zu löschen' } },
102
- })
103
-
104
- const deleteResponse = await apiRequest(request, 'DELETE', `/api/translations/${ENTITY_TYPE}/${productId}`, { token: saToken })
105
- expect(deleteResponse.status()).toBe(204)
106
-
107
- const getResponse = await apiRequest(request, 'GET', `/api/translations/${ENTITY_TYPE}/${productId}`, { token: saToken })
108
- expect(getResponse.status()).toBe(404)
109
- } finally {
110
- await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
111
- await deleteCatalogProductIfExists(request, adminToken, productId)
112
- }
113
- })
114
- })