n8n-editor-ui 1.73.0 → 1.74.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/LICENSE.md +5 -3
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DfdMypiE.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CRv-7oGl.js} +1 -1
  3. package/dist/assets/AuthView-D4i2WDPk.css +408 -0
  4. package/dist/assets/{AuthView-ns622vck.js → AuthView-DiVCkmJO.js} +7 -7
  5. package/dist/assets/{CanvasChat-CxcfSR2i.js → CanvasChat-BMwaSHw5.js} +30 -29
  6. package/dist/assets/CanvasChat-oFfeuF_m.css +2735 -0
  7. package/dist/assets/{CanvasControls-pos7-QhU.js → CanvasControls-B3S4M5tk.js} +4 -4
  8. package/dist/assets/CanvasControls-DTjEPKS0.css +148 -0
  9. package/dist/assets/{ChangePasswordView-Db0MLvV3.js → ChangePasswordView-DMNxdEvW.js} +3 -3
  10. package/dist/assets/CollectionParameter-Cmdh94LV.js +4 -0
  11. package/dist/assets/{ConcurrentExecutionsHeader-D35VlIVA.js → ConcurrentExecutionsHeader-Cz1SdK5W.js} +11 -11
  12. package/dist/assets/ConcurrentExecutionsHeader-DETjSHgm.css +438 -0
  13. package/dist/assets/{CredentialsView-BV4NcyAR.js → CredentialsView-BdvSQS_L.js} +42 -14
  14. package/dist/assets/CredentialsView-DRWQyccW.css +294 -0
  15. package/dist/assets/ErrorView-DPS9icAS.css +144 -0
  16. package/dist/assets/{ErrorView-ClpY9Omy.js → ErrorView-pJv59Fp1.js} +4 -4
  17. package/dist/assets/ExecutionsView-C0P3HAAt.css +710 -0
  18. package/dist/assets/{ExecutionsView-CqWfQ-OS.js → ExecutionsView-DizYSIgZ.js} +35 -35
  19. package/dist/assets/{FileSaver.min-gIFS8BdZ.js → FileSaver.min-CYFZIcxk.js} +1 -1
  20. package/dist/assets/{FixedCollectionParameter-x6YwFDm3.js → FixedCollectionParameter-C-azlgUa.js} +1 -1
  21. package/dist/assets/{FixedCollectionParameter-YwQknIIC.css → FixedCollectionParameter-DvdC-9QQ.css} +122 -0
  22. package/dist/assets/{ForgotMyPasswordView-BgI4UOal.js → ForgotMyPasswordView-DLg1bxUi.js} +3 -3
  23. package/dist/assets/Logo-1eGohTKw.css +160 -0
  24. package/dist/assets/{Logo-DkVmhuQi.js → Logo-DN8dwlbz.js} +11 -10
  25. package/dist/assets/MainHeader-BIKp2Ncp.css +1449 -0
  26. package/dist/assets/{MainHeader-DzT-lrog.js → MainHeader-Dj7ade30.js} +46 -26
  27. package/dist/assets/MainSidebar-Djaxwdmm.css +985 -0
  28. package/dist/assets/{MainSidebar-5Pl77alo.js → MainSidebar-DlNj8GJy.js} +180 -98
  29. package/dist/assets/NodeCreation-RKvezEeg.css +152 -0
  30. package/dist/assets/{NodeCreation-CuUKKWoi.js → NodeCreation-ZBewl4bk.js} +10 -10
  31. package/dist/assets/NodeCreator-DDiuO5S0.css +2493 -0
  32. package/dist/assets/{NodeCreator-D7v1eC6a.js → NodeCreator-DdQP0uVg.js} +108 -84
  33. package/dist/assets/NodeViewSwitcher-Bdg8qofd.js +14837 -0
  34. package/dist/assets/NodeViewSwitcher-UPCWvuIo.css +6801 -0
  35. package/dist/assets/ProjectCardBadge-CKGc0yDi.css +145 -0
  36. package/dist/assets/{ProjectCardBadge-D7xb-Eyd.js → ProjectCardBadge-pbI58Ond.js} +9 -6
  37. package/dist/assets/ProjectHeader-CQjB5wC7.css +285 -0
  38. package/dist/assets/{ProjectHeader-K-i88xtf.js → ProjectHeader-D7XYidpZ.js} +67 -49
  39. package/dist/assets/ProjectSettings-BgunHp-2.css +286 -0
  40. package/dist/assets/{ProjectSettings-BO2wFmU7.js → ProjectSettings-CXSvZq_1.js} +87 -47
  41. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-a7Fc7Xy7.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-B8guxlKC.js} +1 -1
  42. package/dist/assets/{ResourcesListLayout-CRrq5kQe.js → ResourcesListLayout-BhSNEyun.js} +25 -21
  43. package/dist/assets/ResourcesListLayout-Dw1dU1aW.css +748 -0
  44. package/dist/assets/RunDataJson-BXTLuo7i.css +323 -0
  45. package/dist/assets/{RunDataJson-DklR3U0f.js → RunDataJson-DyoK2r6Z.js} +19 -16
  46. package/dist/assets/{RunDataJsonActions-CHdDowSE.js → RunDataJsonActions-DmM5PsDX.js} +3 -4
  47. package/dist/assets/RunDataJsonActions-DrgwFS0W.css +133 -0
  48. package/dist/assets/{RunDataSearch-DWL0Lv8j.js → RunDataSearch-B9xsocwZ.js} +4 -4
  49. package/dist/assets/RunDataSearch-R6qtl0Jf.css +150 -0
  50. package/dist/assets/RunDataTable-CX7gToH4.css +272 -0
  51. package/dist/assets/{RunDataTable-C-K-SFOI.js → RunDataTable-iUS0fcZW.js} +28 -28
  52. package/dist/assets/{SamlOnboarding-CmE16j09.js → SamlOnboarding-c9rXuzta.js} +3 -3
  53. package/dist/assets/{SettingsApiView-Bm7VfYUo.js → SettingsApiView-BbA8em4X.js} +6 -6
  54. package/dist/assets/SettingsApiView-DJKJO7zM.css +145 -0
  55. package/dist/assets/{SettingsCommunityNodesView-BvoqYDi6.js → SettingsCommunityNodesView-BUA0OLqR.js} +18 -17
  56. package/dist/assets/SettingsCommunityNodesView-CAggjsaT.css +317 -0
  57. package/dist/assets/{SettingsExternalSecrets-_w5OFPo8.js → SettingsExternalSecrets-Bp4-QTpk.js} +7 -7
  58. package/dist/assets/SettingsExternalSecrets-d1KDgYYp.css +151 -0
  59. package/dist/assets/SettingsLdapView-Bx1eqk76.css +156 -0
  60. package/dist/assets/{SettingsLdapView-TS7oUlks.js → SettingsLdapView-DAraUZwU.js} +8 -8
  61. package/dist/assets/SettingsLogStreamingView-CflEMmu9.css +290 -0
  62. package/dist/assets/{SettingsLogStreamingView-CAarolrh.js → SettingsLogStreamingView-DTgMc-WZ.js} +8 -8
  63. package/dist/assets/{SettingsPersonalView-Dms8_Ph5.js → SettingsPersonalView-BDWzpO2x.js} +9 -9
  64. package/dist/assets/SettingsPersonalView-CwV8ImYG.css +175 -0
  65. package/dist/assets/{SettingsSourceControl-P9lNmLfg.js → SettingsSourceControl-Dr974WK5.js} +12 -12
  66. package/dist/assets/SettingsSourceControl-DxshapuD.css +202 -0
  67. package/dist/assets/SettingsSso-BjoJZ2DU.css +163 -0
  68. package/dist/assets/{SettingsSso-ICCxzOQe.js → SettingsSso-BxAzGPEO.js} +7 -7
  69. package/dist/assets/SettingsUsageAndPlan-B5DEUrT3.css +333 -0
  70. package/dist/assets/{SettingsUsageAndPlan-BSEPUc4B.js → SettingsUsageAndPlan-DXkQcpTq.js} +12 -12
  71. package/dist/assets/SettingsUsersView-By12E2li.css +143 -0
  72. package/dist/assets/{SettingsUsersView-BzekHfPV.js → SettingsUsersView-ioxWjgmR.js} +6 -6
  73. package/dist/assets/{SettingsView-DupTDURU.js → SettingsView-B_btgRH4.js} +7 -7
  74. package/dist/assets/SettingsView-Bawwm19P.css +285 -0
  75. package/dist/assets/{SetupView-Cq64VV9c.js → SetupView-r9ZPGr7D.js} +3 -3
  76. package/dist/assets/{SetupWorkflowCredentialsButton-LuQ_SEWx.js → SetupWorkflowCredentialsButton-BQTw1Lni.js} +1 -1
  77. package/dist/assets/{SetupWorkflowFromTemplateView-ClOfcHle.js → SetupWorkflowFromTemplateView-ChO-yyKZ.js} +8 -8
  78. package/dist/assets/SetupWorkflowFromTemplateView-ZPJL_m2F.css +148 -0
  79. package/dist/assets/SigninView-D57wRRHz.css +150 -0
  80. package/dist/assets/{SigninView-DM8DhinJ.js → SigninView-D7_W1amk.js} +9 -9
  81. package/dist/assets/{SignoutView-BK-qDL3I.js → SignoutView-BvPOsQQ0.js} +1 -1
  82. package/dist/assets/{SignupView-CWOVKxEj.js → SignupView-Bf0vYlCQ.js} +3 -3
  83. package/dist/assets/{TemplateDetails-DUTNl1QK.js → TemplateDetails-D-RiAVQD.js} +7 -7
  84. package/dist/assets/TemplateDetails-DyUqVhf2.css +265 -0
  85. package/dist/assets/TemplateList-DcOqRM10.css +480 -0
  86. package/dist/assets/{TemplateList-DYRBepI5.js → TemplateList-DeJfbzYl.js} +24 -24
  87. package/dist/assets/TemplatesCollectionView-2q1rzsOG.css +156 -0
  88. package/dist/assets/{TemplatesCollectionView-BxG1bRhA.js → TemplatesCollectionView-uSsfhIa9.js} +12 -12
  89. package/dist/assets/{TemplatesSearchView-UBZQnh-e.js → TemplatesSearchView-DBbTV_xi.js} +18 -18
  90. package/dist/assets/TemplatesSearchView-DETaMpDt.css +953 -0
  91. package/dist/assets/TemplatesView-Cyu28Dlo.css +285 -0
  92. package/dist/assets/{TemplatesView-mU_A1pwb.js → TemplatesView-Qt03GfQO.js} +8 -8
  93. package/dist/assets/{TemplatesWorkflowView-D5N-R1lr.js → TemplatesWorkflowView-CLplrMA6.js} +13 -13
  94. package/dist/assets/TemplatesWorkflowView-DpIiJjJp.css +168 -0
  95. package/dist/assets/{TestDefinitionEditView-CAgd51U-.js → TestDefinitionEditView-CEfQepq8.js} +587 -197
  96. package/dist/assets/TestDefinitionEditView-DM4tV2LS.css +1267 -0
  97. package/dist/assets/{TestDefinitionListView-CKSy47GW.js → TestDefinitionListView-6hn-gG-H.js} +96 -65
  98. package/dist/assets/TestDefinitionListView-BD5_O4Fx.css +567 -0
  99. package/dist/assets/{VariablesView-DPbCYxLS.js → VariablesView-BrXojLhD.js} +8 -8
  100. package/dist/assets/VariablesView-D4pRzSuY.css +434 -0
  101. package/dist/assets/WorkerView-BrSoYcbf.css +977 -0
  102. package/dist/assets/{WorkerView-CtrrcIx2.js → WorkerView-DwULN80E.js} +30 -177
  103. package/dist/assets/WorkflowActivator-DQhm5t0U.css +260 -0
  104. package/dist/assets/{WorkflowActivator-BbwFaJ9a.js → WorkflowActivator-Dm9xwqOB.js} +3 -3
  105. package/dist/assets/{WorkflowExecutionsInfoAccordion-D-0JKX5I.js → WorkflowExecutionsInfoAccordion-B-Z0pyld.js} +3 -3
  106. package/dist/assets/WorkflowExecutionsInfoAccordion-BBtwnPZQ.css +155 -0
  107. package/dist/assets/WorkflowExecutionsLandingPage-Bm_hJMl4.css +145 -0
  108. package/dist/assets/{WorkflowExecutionsLandingPage-C9P1l_M7.js → WorkflowExecutionsLandingPage-HJBYlJAc.js} +5 -5
  109. package/dist/assets/WorkflowExecutionsPreview-CrGxxhLQ.css +537 -0
  110. package/dist/assets/{WorkflowExecutionsPreview-C05AfyP-.js → WorkflowExecutionsPreview-nYDpKm_b.js} +37 -37
  111. package/dist/assets/{WorkflowExecutionsView-qXpp42wG.js → WorkflowExecutionsView-Chvs3FQ3.js} +35 -35
  112. package/dist/assets/WorkflowExecutionsView-DEqJNNDZ.css +676 -0
  113. package/dist/assets/{WorkflowHistory-CbBn3xYH.js → WorkflowHistory-6MCJq0xa.js} +22 -22
  114. package/dist/assets/WorkflowHistory-7Ad0Va7M.css +669 -0
  115. package/dist/assets/{WorkflowOnboardingView-Cb8Efn6T.js → WorkflowOnboardingView-7WiSlKOU.js} +1 -19
  116. package/dist/assets/WorkflowPreview-CIOAVgxK.css +162 -0
  117. package/dist/assets/{WorkflowPreview-DzTTLI8R.js → WorkflowPreview-Dw2NtUVX.js} +8 -8
  118. package/dist/assets/WorkflowsView-DMIGjzPW.css +323 -0
  119. package/dist/assets/{WorkflowsView-BUM-Mmss.js → WorkflowsView-DXnpDXEX.js} +29 -19
  120. package/dist/assets/easyAiWorkflowUtils-BTWwHsY8.js +181 -0
  121. package/dist/assets/{index-LIwDUX8i.css → index-B7TFhNa2.css} +30882 -6572
  122. package/dist/assets/{index-DYxqsGB9.js → index-D0W-rAl_.js} +78733 -72194
  123. package/dist/assets/{pushConnection.store-BVUirLTG.js → pushConnection.store-SZWXnCKb.js} +1 -1
  124. package/dist/assets/{templateActions-CXAWj8IS.js → templateActions-DDtJe_-b.js} +1 -1
  125. package/dist/assets/typescript.worker-H0DmdklC.js +213997 -0
  126. package/dist/assets/{useBugReporting-C3NtP4ZZ.js → useBugReporting-BGxycXGV.js} +1 -1
  127. package/dist/assets/{NodeViewSwitcher-hKoOeK8j.js → useCanvasOperations-BsWyQUek.js} +19402 -33901
  128. package/dist/assets/useCanvasOperations-Byu1Z5ea.css +4144 -0
  129. package/dist/assets/{useExecutionDebugging-BnF8o4vE.js → useExecutionDebugging-CB_jUGyC.js} +1 -1
  130. package/dist/assets/{useExecutionHelpers-7qmdZ0on.js → useExecutionHelpers-COwnTHmy.js} +1 -1
  131. package/dist/assets/{useNodeViewVersionSwitcher-tFqgPPim.js → useNodeViewVersionSwitcher-C8AkOtTL.js} +1 -1
  132. package/dist/assets/usePinnedData-872bXiu-.js +274 -0
  133. package/dist/assets/{usePushConnection-FexDCcd7.js → usePushConnection-CXpJRez7.js} +11 -4
  134. package/dist/assets/{useRunWorkflow-BDl-2MsN.css → useRunWorkflow-DWoFsQdi.css} +406 -40
  135. package/dist/assets/{useRunWorkflow-BPsvjsSm.js → useRunWorkflow-u9KNHrnZ.js} +31 -301
  136. package/dist/assets/{useWorkflowActivate-CIqICdFm.js → useWorkflowActivate-D8Du1iYk.js} +1 -1
  137. package/dist/index.html +2 -2
  138. package/package.json +1 -1
  139. package/tsconfig.json +2 -1
  140. package/vite.config.mts +8 -1
  141. package/dist/assets/AuthView-CvfW_aKu.css +0 -42
  142. package/dist/assets/CanvasChat-DhkdJLy7.css +0 -661
  143. package/dist/assets/CanvasControls-BEOkwFDJ.css +0 -26
  144. package/dist/assets/CollectionParameter-DYy0fmgJ.js +0 -4
  145. package/dist/assets/ConcurrentExecutionsHeader-ChCLnjVG.css +0 -72
  146. package/dist/assets/CredentialsView-CzforIh7.css +0 -36
  147. package/dist/assets/ErrorView-DZCz_7-d.css +0 -22
  148. package/dist/assets/ExecutionsView-CLxQdDnP.css +0 -217
  149. package/dist/assets/Logo-1JT6Fq4s.css +0 -38
  150. package/dist/assets/MainHeader-B1mQLyCP.css +0 -224
  151. package/dist/assets/MainSidebar-BQss-EVY.css +0 -245
  152. package/dist/assets/NodeCreation-DTNNkgVv.css +0 -30
  153. package/dist/assets/NodeCreator-BvqI_pdC.css +0 -522
  154. package/dist/assets/NodeViewSwitcher-D0jynVNt.css +0 -3108
  155. package/dist/assets/ProjectCardBadge-DQvW5T7s.css +0 -20
  156. package/dist/assets/ProjectHeader-CY9vPy_p.css +0 -37
  157. package/dist/assets/ProjectSettings-DZws5IzZ.css +0 -34
  158. package/dist/assets/ResourcesListLayout-NZz6R66g.css +0 -96
  159. package/dist/assets/RunDataJson-DW_khHj4.css +0 -79
  160. package/dist/assets/RunDataJsonActions-CoiM0oFP.css +0 -11
  161. package/dist/assets/RunDataSearch-B4q8H9Ex.css +0 -28
  162. package/dist/assets/RunDataTable-BOaG0Pms.css +0 -150
  163. package/dist/assets/SettingsApiView-DX3S-5pa.css +0 -23
  164. package/dist/assets/SettingsCommunityNodesView-kzxtAoLp.css +0 -73
  165. package/dist/assets/SettingsExternalSecrets-BnXyxlJd.css +0 -29
  166. package/dist/assets/SettingsLdapView-BPh_inzE.css +0 -34
  167. package/dist/assets/SettingsLogStreamingView-Uz298HNW.css +0 -46
  168. package/dist/assets/SettingsPersonalView-CqzRUitO.css +0 -53
  169. package/dist/assets/SettingsSourceControl-C7H8sLJN.css +0 -80
  170. package/dist/assets/SettingsSso-Be_ejj46.css +0 -41
  171. package/dist/assets/SettingsUsageAndPlan-C3fKPMTY.css +0 -89
  172. package/dist/assets/SettingsUsersView-C13eCMjh.css +0 -21
  173. package/dist/assets/SettingsView-o6uNYu0t.css +0 -41
  174. package/dist/assets/SetupWorkflowFromTemplateView-DjBcyMCl.css +0 -26
  175. package/dist/assets/SigninView-BbpzRtoX.css +0 -28
  176. package/dist/assets/TemplateDetails-p3M6A7jr.css +0 -21
  177. package/dist/assets/TemplateList-BR3bpDTv.css +0 -114
  178. package/dist/assets/TemplatesCollectionView-DJVlK4Bb.css +0 -34
  179. package/dist/assets/TemplatesSearchView-CFrHWGcY.css +0 -221
  180. package/dist/assets/TemplatesView-CBNZZ_X1.css +0 -41
  181. package/dist/assets/TemplatesWorkflowView-CVC0fbb6.css +0 -46
  182. package/dist/assets/TestDefinitionEditView-CVRXpJ4c.css +0 -220
  183. package/dist/assets/TestDefinitionListView-BJVxwUdb.css +0 -80
  184. package/dist/assets/VariablesView-BnGnRwcl.css +0 -182
  185. package/dist/assets/WorkerView-CvXMClDD.css +0 -123
  186. package/dist/assets/WorkflowActivator-DSBGQvK0.css +0 -16
  187. package/dist/assets/WorkflowExecutionsInfoAccordion-f5tIRAwu.css +0 -33
  188. package/dist/assets/WorkflowExecutionsLandingPage-BodEQ5Bq.css +0 -23
  189. package/dist/assets/WorkflowExecutionsPreview-C-e7WZrK.css +0 -171
  190. package/dist/assets/WorkflowExecutionsView-CFOgmzpK.css +0 -178
  191. package/dist/assets/WorkflowHistory-D0ufvWsH.css +0 -181
  192. package/dist/assets/WorkflowPreview-DuLM6rtd.css +0 -40
  193. package/dist/assets/WorkflowsView-D5fBzfD4.css +0 -65
  194. package/dist/assets/testDefinition.store.ee-D3IYMf-K.js +0 -138
@@ -1,5 +1,4 @@
1
- import { d as defineComponent, m as resolveComponent, c as openBlock, h as createElementBlock, j as createBaseVNode, t as toDisplayString, l as unref, n as normalizeClass, i as createVNode, g as useI18n, _ as _export_sfc, k as createTextVNode, e as createBlock, f as createCommentVNode, F as Fragment, A as renderList, w as withCtx, aY as resolveDynamicComponent, cq as _sfc_main$4, I as withModifiers, aX as mergeProps, b as useRouter, hw as useAnnotationTagsStore, r as ref, a as useToast, q as computed, o as onMounted, V as VIEWS } from "./index-DYxqsGB9.js";
2
- import { u as useTestDefinitionStore } from "./testDefinition.store.ee-D3IYMf-K.js";
1
+ import { d as defineComponent, m as resolveComponent, c as openBlock, h as createElementBlock, j as createBaseVNode, t as toDisplayString, l as unref, n as normalizeClass, i as createVNode, g as useI18n, _ as _export_sfc, w as withCtx, k as createTextVNode, F as Fragment, fy as _sfc_main$4, f as createCommentVNode, A as renderList, e as createBlock, a$ as resolveDynamicComponent, aP as _sfc_main$5, I as withModifiers, a_ as mergeProps, b as useRouter, hA as useAnnotationTagsStore, hI as useTestDefinitionStore, r as ref, a as useToast, q as computed, o as onMounted, V as VIEWS } from "./index-D0W-rAl_.js";
3
2
  const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4
3
  __name: "EmptyState",
5
4
  emits: ["create-test"],
@@ -24,8 +23,8 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
24
23
  };
25
24
  }
26
25
  });
27
- const container$1 = "_container_18phz_1";
28
- const header = "_header_18phz_7";
26
+ const container$1 = "_container_84f9f_123";
27
+ const header = "_header_84f9f_129";
29
28
  const style0$3 = {
30
29
  container: container$1,
31
30
  header
@@ -34,7 +33,8 @@ const cssModules$3 = {
34
33
  "$style": style0$3
35
34
  };
36
35
  const EmptyState = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$3]]);
37
- const _hoisted_1 = { key: 1 };
36
+ const _hoisted_1 = ["data-test-id"];
37
+ const _hoisted_2 = { key: 1 };
38
38
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
39
39
  __name: "TestItem",
40
40
  props: {
@@ -48,31 +48,36 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
48
48
  const actions2 = [
49
49
  {
50
50
  icon: "play",
51
+ id: "run",
51
52
  event: () => emit("run-test", props.test.id),
52
53
  tooltip: locale.baseText("testDefinition.runTest")
53
54
  },
54
55
  {
55
56
  icon: "list",
57
+ id: "view",
56
58
  event: () => emit("view-details", props.test.id),
57
59
  tooltip: locale.baseText("testDefinition.viewDetails")
58
60
  },
59
61
  {
60
62
  icon: "pen",
63
+ id: "edit",
61
64
  event: () => emit("edit-test", props.test.id),
62
65
  tooltip: locale.baseText("testDefinition.editTest")
63
66
  },
64
67
  {
65
68
  icon: "trash",
69
+ id: "delete",
66
70
  event: () => emit("delete-test", props.test.id),
67
71
  tooltip: locale.baseText("testDefinition.deleteTest")
68
72
  }
69
73
  ];
70
74
  return (_ctx, _cache) => {
71
- const _component_n8n_tag = resolveComponent("n8n-tag");
72
- const _component_n8n_loading = resolveComponent("n8n-loading");
75
+ const _component_n8n_text = resolveComponent("n8n-text");
76
+ const _component_n8n_spinner = resolveComponent("n8n-spinner");
73
77
  const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
74
78
  return openBlock(), createElementBlock("div", {
75
79
  class: normalizeClass(_ctx.$style.testItem),
80
+ "data-test-id": `test-item-${_ctx.test.id}`,
76
81
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("view-details", _ctx.test.id))
77
82
  }, [
78
83
  createBaseVNode("div", {
@@ -80,24 +85,25 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
80
85
  }, [
81
86
  createBaseVNode("div", {
82
87
  class: normalizeClass(_ctx.$style.testName)
83
- }, [
84
- createTextVNode(toDisplayString(_ctx.test.name) + " ", 1),
85
- _ctx.test.tagName ? (openBlock(), createBlock(_component_n8n_tag, {
86
- key: 0,
87
- text: _ctx.test.tagName
88
- }, null, 8, ["text"])) : createCommentVNode("", true)
89
- ], 2),
88
+ }, toDisplayString(_ctx.test.name), 3),
90
89
  createBaseVNode("div", {
91
90
  class: normalizeClass(_ctx.$style.testCases)
92
91
  }, [
93
- createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.list.testCases", { adjustToNumber: _ctx.test.testCases })) + " ", 1),
94
- !_ctx.test.execution.lastRun ? (openBlock(), createBlock(_component_n8n_loading, {
95
- key: 0,
96
- loading: true,
97
- rows: 1
98
- })) : (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(unref(locale).baseText("testDefinition.list.lastRun", {
99
- interpolate: { lastRun: _ctx.test.execution.lastRun }
100
- })), 1))
92
+ createVNode(_component_n8n_text, { size: "small" }, {
93
+ default: withCtx(() => [
94
+ createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.list.testRuns", { adjustToNumber: _ctx.test.testCases })), 1)
95
+ ]),
96
+ _: 1
97
+ }),
98
+ _ctx.test.execution.status === "running" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
99
+ createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.list.running")) + " ", 1),
100
+ createVNode(_component_n8n_spinner)
101
+ ], 64)) : _ctx.test.execution.lastRun ? (openBlock(), createElementBlock("span", _hoisted_2, [
102
+ createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.list.lastRun")) + " ", 1),
103
+ createVNode(_sfc_main$4, {
104
+ date: _ctx.test.execution.lastRun
105
+ }, null, 8, ["date"])
106
+ ])) : createCommentVNode("", true)
101
107
  ], 2)
102
108
  ], 2),
103
109
  createBaseVNode("div", {
@@ -112,7 +118,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
112
118
  return openBlock(), createElementBlock("div", {
113
119
  key,
114
120
  class: normalizeClass(_ctx.$style.metric)
115
- }, toDisplayString(key) + ": " + toDisplayString(value ?? "-"), 3);
121
+ }, toDisplayString(key) + ": " + toDisplayString(value.toFixed(2) ?? "-"), 3);
116
122
  }), 128))
117
123
  ], 2),
118
124
  createBaseVNode("div", {
@@ -128,28 +134,29 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
128
134
  createTextVNode(toDisplayString(action.tooltip), 1)
129
135
  ]),
130
136
  default: withCtx(() => [
131
- (openBlock(), createBlock(resolveDynamicComponent(unref(_sfc_main$4)), {
137
+ (openBlock(), createBlock(resolveDynamicComponent(unref(_sfc_main$5)), {
132
138
  icon: action.icon,
139
+ "data-test-id": `${action.id}-test-button-${_ctx.test.id}`,
133
140
  type: "tertiary",
134
141
  size: "mini",
135
142
  onClick: withModifiers(action.event, ["stop"])
136
- }, null, 8, ["icon", "onClick"]))
143
+ }, null, 8, ["icon", "data-test-id", "onClick"]))
137
144
  ]),
138
145
  _: 2
139
146
  }, 1024);
140
147
  }), 64))
141
148
  ], 2)
142
- ], 2);
149
+ ], 10, _hoisted_1);
143
150
  };
144
151
  }
145
152
  });
146
- const testItem = "_testItem_1lysx_1";
147
- const testInfo = "_testInfo_1lysx_14";
148
- const testName = "_testName_1lysx_20";
149
- const testCases = "_testCases_1lysx_29";
150
- const metrics = "_metrics_1lysx_37";
151
- const metric = "_metric_1lysx_37";
152
- const actions = "_actions_1lysx_49";
153
+ const testItem = "_testItem_ahqp7_123";
154
+ const testInfo = "_testInfo_ahqp7_136";
155
+ const testName = "_testName_ahqp7_142";
156
+ const testCases = "_testCases_ahqp7_150";
157
+ const metrics = "_metrics_ahqp7_158";
158
+ const metric = "_metric_ahqp7_158";
159
+ const actions = "_actions_ahqp7_170";
153
160
  const style0$2 = {
154
161
  testItem,
155
162
  testInfo,
@@ -174,7 +181,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
174
181
  return (_ctx, _cache) => {
175
182
  const _component_n8n_button = resolveComponent("n8n-button");
176
183
  return openBlock(), createElementBlock("div", {
177
- class: normalizeClass(_ctx.$style.testsList)
184
+ class: normalizeClass(_ctx.$style.testsList),
185
+ "data-test-id": "test-definition-list"
178
186
  }, [
179
187
  createBaseVNode("div", {
180
188
  class: normalizeClass(_ctx.$style.testsHeader)
@@ -195,8 +203,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
195
203
  };
196
204
  }
197
205
  });
198
- const testsList = "_testsList_1aleg_1";
199
- const testsHeader = "_testsHeader_1aleg_7";
206
+ const testsList = "_testsList_128kj_123";
207
+ const testsHeader = "_testsHeader_128kj_129";
200
208
  const style0$1 = {
201
209
  testsList,
202
210
  testsHeader
@@ -215,12 +223,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
215
223
  const toast = useToast();
216
224
  const locale = useI18n();
217
225
  const tests = computed(() => {
218
- return testDefinitionStore.allTestDefinitions.filter((test) => test.id !== void 0).sort((a, b) => new Date(b?.updatedAt ?? "").getTime() - new Date(a?.updatedAt ?? "").getTime()).map((test) => ({
226
+ return (testDefinitionStore.allTestDefinitionsByWorkflowId[router.currentRoute.value.params.name] ?? []).filter((test) => test.id !== void 0).sort((a, b) => new Date(b?.updatedAt ?? "").getTime() - new Date(a?.updatedAt ?? "").getTime()).map((test) => ({
219
227
  id: test.id,
220
228
  name: test.name ?? "",
221
229
  tagName: test.annotationTagId ? getTagName(test.annotationTagId) : "",
222
- testCases: 0,
223
- // TODO: This should come from the API
230
+ testCases: testDefinitionStore.testRunsByTestId[test.id]?.length ?? 0,
224
231
  execution: getTestExecution(test.id)
225
232
  }));
226
233
  });
@@ -230,32 +237,45 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
230
237
  const matchingTag = allTags.value.find((t) => t.id === tagId);
231
238
  return matchingTag?.name ?? "";
232
239
  }
233
- function getTestExecution(_testId) {
240
+ function getTestExecution(testId) {
241
+ const lastRun = testDefinitionStore.lastRunByTestId[testId];
242
+ if (!lastRun) {
243
+ return {
244
+ lastRun: null,
245
+ errorRate: 0,
246
+ metrics: {},
247
+ status: "new"
248
+ };
249
+ }
234
250
  const mockExecutions = {
235
- lastRun: "an hour ago",
251
+ lastRun: lastRun.updatedAt ?? "",
236
252
  errorRate: 0,
237
- metrics: { metric1: 0.12, metric2: 0.99, metric3: 0.87 }
238
- };
239
- return mockExecutions || {
240
- lastRun: null,
241
- errorRate: null,
242
- metrics: { metric1: null, metric2: null, metric3: null }
253
+ metrics: lastRun.metrics ?? {},
254
+ status: lastRun.status ?? "running"
243
255
  };
256
+ return mockExecutions;
244
257
  }
245
258
  function onCreateTest() {
246
259
  void router.push({ name: VIEWS.NEW_TEST_DEFINITION });
247
260
  }
248
- function onRunTest(_testId) {
249
- toast.showMessage({
250
- title: locale.baseText("testDefinition.notImplemented"),
251
- type: "warning"
252
- });
261
+ async function onRunTest(testId) {
262
+ try {
263
+ const result = await testDefinitionStore.startTestRun(testId);
264
+ if (result.success) {
265
+ toast.showMessage({
266
+ title: locale.baseText("testDefinition.list.testStarted"),
267
+ type: "success"
268
+ });
269
+ await testDefinitionStore.fetchTestRuns(testId);
270
+ } else {
271
+ throw new Error("Test run failed to start");
272
+ }
273
+ } catch (error) {
274
+ toast.showError(error, locale.baseText("testDefinition.list.testStartError"));
275
+ }
253
276
  }
254
- function onViewDetails(_testId) {
255
- toast.showMessage({
256
- title: locale.baseText("testDefinition.notImplemented"),
257
- type: "warning"
258
- });
277
+ async function onViewDetails(testId) {
278
+ void router.push({ name: VIEWS.TEST_DEFINITION_RUNS, params: { testId } });
259
279
  }
260
280
  function onEditTest(testId) {
261
281
  void router.push({ name: VIEWS.TEST_DEFINITION_EDIT, params: { testId } });
@@ -268,12 +288,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
268
288
  });
269
289
  }
270
290
  async function loadInitialData() {
271
- isLoading.value = true;
272
- try {
273
- await tagsStore.fetchAll();
274
- await testDefinitionStore.fetchAll();
275
- } finally {
276
- isLoading.value = false;
291
+ if (!isLoading.value) {
292
+ isLoading.value = true;
293
+ try {
294
+ await Promise.all([
295
+ tagsStore.fetchAll(),
296
+ testDefinitionStore.fetchAll({
297
+ workflowId: router.currentRoute.value.params.name
298
+ })
299
+ ]);
300
+ isLoading.value = false;
301
+ } catch (error) {
302
+ toast.showError(error, locale.baseText("testDefinition.list.loadError"));
303
+ } finally {
304
+ isLoading.value = false;
305
+ }
277
306
  }
278
307
  }
279
308
  onMounted(() => {
@@ -286,6 +315,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
286
315
  name: VIEWS.WORKFLOW,
287
316
  params: { name: router.currentRoute.value.params.name }
288
317
  });
318
+ return;
289
319
  }
290
320
  void loadInitialData();
291
321
  });
@@ -305,6 +335,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
305
335
  ], 2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
306
336
  !hasTests.value ? (openBlock(), createBlock(EmptyState, {
307
337
  key: 0,
338
+ "data-test-id": "test-definition-empty-state",
308
339
  onCreateTest
309
340
  })) : (openBlock(), createBlock(TestsList, {
310
341
  key: 1,
@@ -320,8 +351,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
320
351
  };
321
352
  }
322
353
  });
323
- const container = "_container_an92i_1";
324
- const loading = "_loading_an92i_8";
354
+ const container = "_container_1c8ch_123";
355
+ const loading = "_loading_1c8ch_130";
325
356
  const style0 = {
326
357
  container,
327
358
  loading