@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,684 +0,0 @@
1
- import { describe, test, expect, jest, beforeEach } from '@jest/globals'
2
- import type { EntityManager } from '@mikro-orm/core'
3
- import type { AwilixContainer } from 'awilix'
4
- import * as workflowExecutor from '../workflow-executor'
5
- import type {
6
- WorkflowDefinition,
7
- WorkflowInstance,
8
- WorkflowEvent,
9
- } from '../../data/entities'
10
-
11
- describe('Workflow Executor (Unit Tests)', () => {
12
- let mockEm: jest.Mocked<EntityManager>
13
- let mockContainer: jest.Mocked<AwilixContainer>
14
-
15
- const testTenantId = '00000000-0000-4000-8000-000000000001'
16
- const testOrgId = '00000000-0000-4000-8000-000000000002'
17
- const testDefinitionId = '00000000-0000-4000-8000-000000000003'
18
- const testInstanceId = '00000000-0000-4000-8000-000000000004'
19
-
20
- // Mock workflow definition with simple START -> END flow
21
- const mockDefinition: Partial<WorkflowDefinition> = {
22
- id: testDefinitionId,
23
- workflowId: 'simple-workflow',
24
- workflowName: 'Simple Workflow',
25
- version: 1,
26
- enabled: true,
27
- definition: {
28
- steps: [
29
- {
30
- stepId: 'start',
31
- stepName: 'Start',
32
- stepType: 'START',
33
- },
34
- {
35
- stepId: 'end',
36
- stepName: 'End',
37
- stepType: 'END',
38
- },
39
- ],
40
- transitions: [
41
- {
42
- transitionId: 'start-to-end',
43
- fromStepId: 'start',
44
- toStepId: 'end',
45
- trigger: 'auto',
46
- priority: 0,
47
- },
48
- ],
49
- },
50
- tenantId: testTenantId,
51
- organizationId: testOrgId,
52
- }
53
-
54
- beforeEach(() => {
55
- // Create mock EntityManager
56
- mockEm = {
57
- findOne: jest.fn(),
58
- find: jest.fn(),
59
- create: jest.fn(),
60
- persistAndFlush: jest.fn(),
61
- flush: jest.fn(),
62
- nativeDelete: jest.fn(),
63
- } as any
64
-
65
- // Create mock DI Container
66
- mockContainer = {
67
- resolve: jest.fn(),
68
- } as any
69
-
70
- // Reset all mocks
71
- jest.clearAllMocks()
72
- })
73
-
74
- // ============================================================================
75
- // startWorkflow() Tests
76
- // ============================================================================
77
-
78
- describe('startWorkflow', () => {
79
- test('should start workflow successfully', async () => {
80
- mockEm.findOne.mockResolvedValue(mockDefinition as WorkflowDefinition)
81
-
82
- const mockInstance = {
83
- id: testInstanceId,
84
- definitionId: testDefinitionId,
85
- workflowId: 'simple-workflow',
86
- version: 1,
87
- status: 'RUNNING',
88
- currentStepId: 'start',
89
- context: { initialData: 'test' },
90
- tenantId: testTenantId,
91
- organizationId: testOrgId,
92
- startedAt: new Date(),
93
- retryCount: 0,
94
- createdAt: new Date(),
95
- updatedAt: new Date(),
96
- } as WorkflowInstance
97
-
98
- mockEm.create.mockReturnValue(mockInstance)
99
-
100
- const instance = await workflowExecutor.startWorkflow(mockEm, {
101
- workflowId: 'simple-workflow',
102
- initialContext: { initialData: 'test' },
103
- tenantId: testTenantId,
104
- organizationId: testOrgId,
105
- })
106
-
107
- expect(instance).toBeDefined()
108
- expect(instance.workflowId).toBe('simple-workflow')
109
- expect(instance.status).toBe('RUNNING')
110
- expect(instance.currentStepId).toBe('start')
111
- expect(mockEm.create).toHaveBeenCalled()
112
- expect(mockEm.persistAndFlush).toHaveBeenCalledWith(mockInstance)
113
- })
114
-
115
- test('should throw error if definition not found', async () => {
116
- mockEm.findOne.mockResolvedValue(null)
117
-
118
- await expect(
119
- workflowExecutor.startWorkflow(mockEm, {
120
- workflowId: 'non-existent',
121
- tenantId: testTenantId,
122
- organizationId: testOrgId,
123
- })
124
- ).rejects.toThrow('Workflow definition not found')
125
- })
126
-
127
- test('should throw error if definition is disabled', async () => {
128
- const disabledDefinition = {
129
- ...mockDefinition,
130
- enabled: false,
131
- }
132
- mockEm.findOne.mockResolvedValue(disabledDefinition as WorkflowDefinition)
133
-
134
- await expect(
135
- workflowExecutor.startWorkflow(mockEm, {
136
- workflowId: 'simple-workflow',
137
- tenantId: testTenantId,
138
- organizationId: testOrgId,
139
- })
140
- ).rejects.toThrow('Workflow definition is disabled')
141
- })
142
-
143
- test('should throw error if definition has no steps', async () => {
144
- const invalidDefinition = {
145
- ...mockDefinition,
146
- definition: {
147
- steps: [],
148
- transitions: [],
149
- },
150
- }
151
- mockEm.findOne.mockResolvedValue(invalidDefinition as WorkflowDefinition)
152
-
153
- await expect(
154
- workflowExecutor.startWorkflow(mockEm, {
155
- workflowId: 'simple-workflow',
156
- tenantId: testTenantId,
157
- organizationId: testOrgId,
158
- })
159
- ).rejects.toThrow('Workflow definition must have at least START and END steps')
160
- })
161
-
162
- test('should throw error if definition has no transitions', async () => {
163
- const invalidDefinition = {
164
- ...mockDefinition,
165
- definition: {
166
- steps: [
167
- { stepId: 'start', stepName: 'Start', stepType: 'START' },
168
- { stepId: 'end', stepName: 'End', stepType: 'END' },
169
- ],
170
- transitions: [],
171
- },
172
- }
173
- mockEm.findOne.mockResolvedValue(invalidDefinition as WorkflowDefinition)
174
-
175
- await expect(
176
- workflowExecutor.startWorkflow(mockEm, {
177
- workflowId: 'simple-workflow',
178
- tenantId: testTenantId,
179
- organizationId: testOrgId,
180
- })
181
- ).rejects.toThrow('Workflow definition must have at least one transition')
182
- })
183
-
184
- test('should throw error if definition has no START step', async () => {
185
- const invalidDefinition = {
186
- ...mockDefinition,
187
- definition: {
188
- steps: [
189
- { stepId: 'step1', stepName: 'Step 1', stepType: 'AUTOMATED' },
190
- { stepId: 'end', stepName: 'End', stepType: 'END' },
191
- ],
192
- transitions: [
193
- {
194
- transitionId: 'step1-to-end',
195
- fromStepId: 'step1',
196
- toStepId: 'end',
197
- trigger: 'auto',
198
- priority: 0,
199
- },
200
- ],
201
- },
202
- }
203
- mockEm.findOne.mockResolvedValue(invalidDefinition as WorkflowDefinition)
204
-
205
- await expect(
206
- workflowExecutor.startWorkflow(mockEm, {
207
- workflowId: 'simple-workflow',
208
- tenantId: testTenantId,
209
- organizationId: testOrgId,
210
- })
211
- ).rejects.toThrow('Workflow definition must have a START step')
212
- })
213
-
214
- test('should support correlation key', async () => {
215
- mockEm.findOne.mockResolvedValue(mockDefinition as WorkflowDefinition)
216
-
217
- const mockInstance = {
218
- id: testInstanceId,
219
- definitionId: testDefinitionId,
220
- workflowId: 'simple-workflow',
221
- version: 1,
222
- status: 'RUNNING',
223
- currentStepId: 'start',
224
- context: {},
225
- correlationKey: 'order-12345',
226
- tenantId: testTenantId,
227
- organizationId: testOrgId,
228
- retryCount: 0,
229
- createdAt: new Date(),
230
- updatedAt: new Date(),
231
- } as WorkflowInstance
232
-
233
- mockEm.create.mockReturnValue(mockInstance)
234
-
235
- const instance = await workflowExecutor.startWorkflow(mockEm, {
236
- workflowId: 'simple-workflow',
237
- correlationKey: 'order-12345',
238
- tenantId: testTenantId,
239
- organizationId: testOrgId,
240
- })
241
-
242
- expect(instance.correlationKey).toBe('order-12345')
243
- })
244
-
245
- test('should support metadata', async () => {
246
- mockEm.findOne.mockResolvedValue(mockDefinition as WorkflowDefinition)
247
-
248
- const metadata = {
249
- entityType: 'Order',
250
- entityId: '12345',
251
- initiatedBy: 'user@example.com',
252
- }
253
-
254
- const mockInstance = {
255
- id: testInstanceId,
256
- definitionId: testDefinitionId,
257
- workflowId: 'simple-workflow',
258
- version: 1,
259
- status: 'RUNNING',
260
- currentStepId: 'start',
261
- context: {},
262
- metadata,
263
- tenantId: testTenantId,
264
- organizationId: testOrgId,
265
- retryCount: 0,
266
- createdAt: new Date(),
267
- updatedAt: new Date(),
268
- } as WorkflowInstance
269
-
270
- mockEm.create.mockReturnValue(mockInstance)
271
-
272
- const instance = await workflowExecutor.startWorkflow(mockEm, {
273
- workflowId: 'simple-workflow',
274
- metadata,
275
- tenantId: testTenantId,
276
- organizationId: testOrgId,
277
- })
278
-
279
- expect(instance.metadata).toEqual(metadata)
280
- })
281
-
282
- test('should find latest enabled version if no version specified', async () => {
283
- mockEm.findOne.mockResolvedValue(mockDefinition as WorkflowDefinition)
284
-
285
- const mockInstance = {
286
- id: testInstanceId,
287
- definitionId: testDefinitionId,
288
- workflowId: 'simple-workflow',
289
- version: 1,
290
- status: 'RUNNING',
291
- currentStepId: 'start',
292
- context: {},
293
- tenantId: testTenantId,
294
- organizationId: testOrgId,
295
- } as WorkflowInstance
296
-
297
- mockEm.create.mockReturnValue(mockInstance)
298
-
299
- await workflowExecutor.startWorkflow(mockEm, {
300
- workflowId: 'simple-workflow',
301
- tenantId: testTenantId,
302
- organizationId: testOrgId,
303
- })
304
-
305
- // Should search for enabled definition with DESC ordering
306
- const callArgs = mockEm.findOne.mock.calls[0]
307
- expect(callArgs[0]).toEqual(expect.any(Function))
308
- expect(callArgs[1]).toMatchObject({
309
- workflowId: 'simple-workflow',
310
- tenantId: testTenantId,
311
- organizationId: testOrgId,
312
- enabled: true,
313
- deletedAt: null,
314
- })
315
- expect(callArgs[2]).toEqual({ orderBy: { version: 'DESC' } })
316
- })
317
- })
318
-
319
- // ============================================================================
320
- // executeWorkflow() Tests
321
- // ============================================================================
322
-
323
- describe('executeWorkflow', () => {
324
- test('should execute workflow at END step and complete it', async () => {
325
- const mockInstance = {
326
- id: testInstanceId,
327
- definitionId: testDefinitionId,
328
- workflowId: 'simple-workflow',
329
- version: 1,
330
- status: 'RUNNING',
331
- currentStepId: 'end', // Already at END step
332
- context: { data: 'test' },
333
- tenantId: testTenantId,
334
- organizationId: testOrgId,
335
- startedAt: new Date(),
336
- retryCount: 0,
337
- createdAt: new Date(),
338
- updatedAt: new Date(),
339
- } as WorkflowInstance
340
-
341
- mockEm.findOne
342
- .mockResolvedValueOnce(mockInstance) // First call: get instance in executeWorkflow
343
- .mockResolvedValueOnce(mockDefinition as WorkflowDefinition) // Second call: get definition
344
- .mockResolvedValueOnce(mockInstance) // Third call: refresh instance in executeWorkflow
345
- .mockResolvedValueOnce(mockInstance) // Fourth call: get instance in completeWorkflow
346
- .mockResolvedValueOnce(mockDefinition as WorkflowDefinition) // Fifth call: get definition in completeWorkflow for compensation check
347
-
348
- const result = await workflowExecutor.executeWorkflow(mockEm, mockContainer, testInstanceId)
349
-
350
- expect(result.status).toBe('COMPLETED')
351
- expect(result.currentStep).toBe('end')
352
- expect(result.executionTime).toBeGreaterThanOrEqual(0)
353
- })
354
-
355
- test('should return RUNNING status if not at END step', async () => {
356
- const mockInstance = {
357
- id: testInstanceId,
358
- definitionId: testDefinitionId,
359
- workflowId: 'simple-workflow',
360
- version: 1,
361
- status: 'RUNNING',
362
- currentStepId: 'start', // At START step
363
- context: { data: 'test' },
364
- tenantId: testTenantId,
365
- organizationId: testOrgId,
366
- startedAt: new Date(),
367
- retryCount: 0,
368
- createdAt: new Date(),
369
- updatedAt: new Date(),
370
- } as WorkflowInstance
371
-
372
- mockEm.findOne
373
- .mockResolvedValueOnce(mockInstance) // First call: get instance in executeWorkflow
374
- .mockResolvedValueOnce(mockDefinition as WorkflowDefinition) // Second call: get definition
375
- .mockResolvedValueOnce(mockInstance) // Third call: refresh instance in executeWorkflow
376
-
377
- const result = await workflowExecutor.executeWorkflow(mockEm, mockContainer, testInstanceId)
378
-
379
- expect(result.status).toBe('RUNNING')
380
- expect(result.currentStep).toBe('start')
381
- })
382
-
383
- test('should throw error if instance not found', async () => {
384
- mockEm.findOne.mockResolvedValue(null)
385
-
386
- await expect(
387
- workflowExecutor.executeWorkflow(mockEm, mockContainer, 'non-existent-id')
388
- ).rejects.toThrow('Workflow instance not found')
389
- })
390
-
391
- test('should handle already completed workflow', async () => {
392
- const mockInstance = {
393
- id: testInstanceId,
394
- definitionId: testDefinitionId,
395
- workflowId: 'simple-workflow',
396
- version: 1,
397
- status: 'COMPLETED',
398
- currentStepId: 'end',
399
- context: { data: 'test' },
400
- tenantId: testTenantId,
401
- organizationId: testOrgId,
402
- startedAt: new Date(),
403
- completedAt: new Date(),
404
- retryCount: 0,
405
- createdAt: new Date(),
406
- updatedAt: new Date(),
407
- } as WorkflowInstance
408
-
409
- mockEm.findOne.mockResolvedValue(mockInstance)
410
-
411
- const result = await workflowExecutor.executeWorkflow(mockEm, mockContainer, testInstanceId)
412
-
413
- expect(result.status).toBe('COMPLETED')
414
- expect(result.executionTime).toBe(0)
415
- })
416
-
417
- test('should throw error for cancelled workflow', async () => {
418
- const mockInstance = {
419
- id: testInstanceId,
420
- definitionId: testDefinitionId,
421
- workflowId: 'simple-workflow',
422
- version: 1,
423
- status: 'CANCELLED',
424
- currentStepId: 'start',
425
- context: {},
426
- tenantId: testTenantId,
427
- organizationId: testOrgId,
428
- startedAt: new Date(),
429
- cancelledAt: new Date(),
430
- retryCount: 0,
431
- createdAt: new Date(),
432
- updatedAt: new Date(),
433
- } as WorkflowInstance
434
-
435
- mockEm.findOne.mockResolvedValue(mockInstance)
436
-
437
- await expect(
438
- workflowExecutor.executeWorkflow(mockEm, mockContainer, testInstanceId)
439
- ).rejects.toThrow('Cannot execute cancelled workflow')
440
- })
441
-
442
- test('should throw error if definition not found', async () => {
443
- const mockInstance = {
444
- id: testInstanceId,
445
- definitionId: testDefinitionId,
446
- workflowId: 'simple-workflow',
447
- version: 1,
448
- status: 'RUNNING',
449
- currentStepId: 'start',
450
- context: {},
451
- tenantId: testTenantId,
452
- organizationId: testOrgId,
453
- startedAt: new Date(),
454
- retryCount: 0,
455
- createdAt: new Date(),
456
- updatedAt: new Date(),
457
- } as WorkflowInstance
458
-
459
- mockEm.findOne
460
- .mockResolvedValueOnce(mockInstance)
461
- .mockResolvedValueOnce(null) // Definition not found
462
-
463
- await expect(
464
- workflowExecutor.executeWorkflow(mockEm, mockContainer, testInstanceId)
465
- ).rejects.toThrow('Workflow definition not found')
466
- })
467
- })
468
-
469
- // ============================================================================
470
- // completeWorkflow() Tests
471
- // ============================================================================
472
-
473
- describe('completeWorkflow', () => {
474
- test('should complete workflow with COMPLETED status', async () => {
475
- const mockInstance = {
476
- id: testInstanceId,
477
- definitionId: testDefinitionId,
478
- workflowId: 'simple-workflow',
479
- version: 1,
480
- status: 'RUNNING',
481
- currentStepId: 'end',
482
- context: { data: 'test' },
483
- tenantId: testTenantId,
484
- organizationId: testOrgId,
485
- startedAt: new Date(),
486
- retryCount: 0,
487
- createdAt: new Date(),
488
- updatedAt: new Date(),
489
- } as WorkflowInstance
490
-
491
- mockEm.findOne.mockResolvedValue(mockInstance)
492
-
493
- await workflowExecutor.completeWorkflow(mockEm, mockContainer, testInstanceId, 'COMPLETED', {
494
- finalResult: 'success',
495
- })
496
-
497
- expect(mockInstance.status).toBe('COMPLETED')
498
- expect(mockInstance.completedAt).toBeDefined()
499
- expect(mockInstance.context.__result).toEqual({ finalResult: 'success' })
500
- expect(mockEm.flush).toHaveBeenCalled()
501
- })
502
-
503
- test('should complete workflow with FAILED status', async () => {
504
- const mockInstance = {
505
- id: testInstanceId,
506
- definitionId: testDefinitionId,
507
- workflowId: 'simple-workflow',
508
- version: 1,
509
- status: 'RUNNING',
510
- currentStepId: 'step1',
511
- context: {},
512
- tenantId: testTenantId,
513
- organizationId: testOrgId,
514
- startedAt: new Date(),
515
- retryCount: 0,
516
- createdAt: new Date(),
517
- updatedAt: new Date(),
518
- } as WorkflowInstance
519
-
520
- mockEm.findOne
521
- .mockResolvedValueOnce(mockInstance) // First call: get instance
522
- .mockResolvedValueOnce(mockDefinition as WorkflowDefinition) // Second call: get definition for compensation check
523
-
524
- await workflowExecutor.completeWorkflow(mockEm, mockContainer, testInstanceId, 'FAILED', {
525
- error: 'Something went wrong',
526
- details: { code: 'ERROR_CODE' },
527
- })
528
-
529
- expect(mockInstance.status).toBe('FAILED')
530
- expect(mockInstance.completedAt).toBeDefined()
531
- expect(mockInstance.errorMessage).toBe('Something went wrong')
532
- expect(mockInstance.errorDetails).toEqual({ code: 'ERROR_CODE' })
533
- expect(mockEm.flush).toHaveBeenCalled()
534
- })
535
-
536
- test('should complete workflow with CANCELLED status', async () => {
537
- const mockInstance = {
538
- id: testInstanceId,
539
- definitionId: testDefinitionId,
540
- workflowId: 'simple-workflow',
541
- version: 1,
542
- status: 'RUNNING',
543
- currentStepId: 'step1',
544
- context: {},
545
- tenantId: testTenantId,
546
- organizationId: testOrgId,
547
- startedAt: new Date(),
548
- retryCount: 0,
549
- createdAt: new Date(),
550
- updatedAt: new Date(),
551
- } as WorkflowInstance
552
-
553
- mockEm.findOne.mockResolvedValue(mockInstance)
554
-
555
- await workflowExecutor.completeWorkflow(mockEm, mockContainer, testInstanceId, 'CANCELLED')
556
-
557
- expect(mockInstance.status).toBe('CANCELLED')
558
- expect(mockInstance.cancelledAt).toBeDefined()
559
- expect(mockEm.flush).toHaveBeenCalled()
560
- })
561
-
562
- test('should throw error if instance not found', async () => {
563
- mockEm.findOne.mockResolvedValue(null)
564
-
565
- await expect(
566
- workflowExecutor.completeWorkflow(mockEm, mockContainer, 'non-existent-id', 'COMPLETED')
567
- ).rejects.toThrow('Workflow instance not found')
568
- })
569
- })
570
-
571
- // ============================================================================
572
- // Helper Functions Tests
573
- // ============================================================================
574
-
575
- describe('getWorkflowInstance', () => {
576
- test('should get workflow instance by ID', async () => {
577
- const mockInstance = {
578
- id: testInstanceId,
579
- workflowId: 'simple-workflow',
580
- status: 'RUNNING',
581
- definitionId: testDefinitionId,
582
- version: 1,
583
- currentStepId: 'start',
584
- context: {},
585
- tenantId: testTenantId,
586
- organizationId: testOrgId,
587
- startedAt: new Date(),
588
- retryCount: 0,
589
- createdAt: new Date(),
590
- updatedAt: new Date(),
591
- } as WorkflowInstance
592
-
593
- mockEm.findOne.mockResolvedValue(mockInstance)
594
-
595
- const instance = await workflowExecutor.getWorkflowInstance(mockEm, testInstanceId)
596
-
597
- expect(instance).toBeDefined()
598
- expect(instance?.id).toBe(testInstanceId)
599
- const findOneCall = mockEm.findOne.mock.calls[0]
600
- expect(findOneCall[0]).toEqual(expect.any(Function))
601
- expect(findOneCall[1]).toEqual({ id: testInstanceId })
602
- })
603
-
604
- test('should return null if instance not found', async () => {
605
- mockEm.findOne.mockResolvedValue(null)
606
-
607
- const instance = await workflowExecutor.getWorkflowInstance(mockEm, 'non-existent-id')
608
-
609
- expect(instance).toBeNull()
610
- })
611
- })
612
-
613
- describe('updateWorkflowContext', () => {
614
- test('should update workflow context', async () => {
615
- const mockInstance = {
616
- id: testInstanceId,
617
- workflowId: 'simple-workflow',
618
- status: 'RUNNING',
619
- context: { existingKey: 'existingValue' },
620
- definitionId: testDefinitionId,
621
- version: 1,
622
- currentStepId: 'start',
623
- tenantId: testTenantId,
624
- organizationId: testOrgId,
625
- startedAt: new Date(),
626
- retryCount: 0,
627
- createdAt: new Date(),
628
- updatedAt: new Date(),
629
- } as WorkflowInstance
630
-
631
- mockEm.findOne.mockResolvedValue(mockInstance)
632
-
633
- await workflowExecutor.updateWorkflowContext(mockEm, testInstanceId, {
634
- newKey: 'newValue',
635
- })
636
-
637
- expect(mockInstance.context).toEqual({
638
- existingKey: 'existingValue',
639
- newKey: 'newValue',
640
- })
641
- expect(mockInstance.updatedAt).toBeDefined()
642
- expect(mockEm.flush).toHaveBeenCalled()
643
- })
644
-
645
- test('should throw error if instance not found', async () => {
646
- mockEm.findOne.mockResolvedValue(null)
647
-
648
- await expect(
649
- workflowExecutor.updateWorkflowContext(mockEm, 'non-existent-id', { key: 'value' })
650
- ).rejects.toThrow('Workflow instance not found')
651
- })
652
-
653
- test('should merge context updates with existing context', async () => {
654
- const mockInstance = {
655
- id: testInstanceId,
656
- workflowId: 'simple-workflow',
657
- status: 'RUNNING',
658
- context: { key1: 'value1', key2: 'value2' },
659
- definitionId: testDefinitionId,
660
- version: 1,
661
- currentStepId: 'start',
662
- tenantId: testTenantId,
663
- organizationId: testOrgId,
664
- startedAt: new Date(),
665
- retryCount: 0,
666
- createdAt: new Date(),
667
- updatedAt: new Date(),
668
- } as WorkflowInstance
669
-
670
- mockEm.findOne.mockResolvedValue(mockInstance)
671
-
672
- await workflowExecutor.updateWorkflowContext(mockEm, testInstanceId, {
673
- key2: 'updatedValue2',
674
- key3: 'value3',
675
- })
676
-
677
- expect(mockInstance.context).toEqual({
678
- key1: 'value1',
679
- key2: 'updatedValue2',
680
- key3: 'value3',
681
- })
682
- })
683
- })
684
- })