@yh-ui/flow 1.0.26 → 1.0.36

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 (142) hide show
  1. package/package.json +6 -6
  2. package/dist/__tests__/ai-workflow.ssr.test.cjs +0 -352
  3. package/dist/__tests__/ai-workflow.ssr.test.d.ts +0 -1
  4. package/dist/__tests__/ai-workflow.ssr.test.mjs +0 -283
  5. package/dist/__tests__/ai-workflow.test.cjs +0 -109
  6. package/dist/__tests__/ai-workflow.test.d.ts +0 -1
  7. package/dist/__tests__/ai-workflow.test.mjs +0 -112
  8. package/dist/__tests__/bpmn-engine.test.cjs +0 -357
  9. package/dist/__tests__/bpmn-engine.test.d.ts +0 -1
  10. package/dist/__tests__/bpmn-engine.test.mjs +0 -406
  11. package/dist/__tests__/bpmn-utils.test.cjs +0 -268
  12. package/dist/__tests__/bpmn-utils.test.d.ts +0 -1
  13. package/dist/__tests__/bpmn-utils.test.mjs +0 -227
  14. package/dist/__tests__/bpmn-xml.test.cjs +0 -150
  15. package/dist/__tests__/bpmn-xml.test.d.ts +0 -1
  16. package/dist/__tests__/bpmn-xml.test.mjs +0 -112
  17. package/dist/__tests__/bpmn.ssr.test.cjs +0 -278
  18. package/dist/__tests__/bpmn.ssr.test.d.ts +0 -1
  19. package/dist/__tests__/bpmn.ssr.test.mjs +0 -237
  20. package/dist/__tests__/bpmn.test.cjs +0 -103
  21. package/dist/__tests__/bpmn.test.d.ts +0 -1
  22. package/dist/__tests__/bpmn.test.mjs +0 -106
  23. package/dist/__tests__/collaboration.test.cjs +0 -487
  24. package/dist/__tests__/collaboration.test.d.ts +0 -1
  25. package/dist/__tests__/collaboration.test.mjs +0 -424
  26. package/dist/__tests__/custom-types.test.cjs +0 -300
  27. package/dist/__tests__/custom-types.test.d.ts +0 -1
  28. package/dist/__tests__/custom-types.test.mjs +0 -248
  29. package/dist/__tests__/edge-types.test.cjs +0 -275
  30. package/dist/__tests__/edge-types.test.d.ts +0 -1
  31. package/dist/__tests__/edge-types.test.mjs +0 -234
  32. package/dist/__tests__/edge-utils.test.cjs +0 -375
  33. package/dist/__tests__/edge-utils.test.d.ts +0 -1
  34. package/dist/__tests__/edge-utils.test.mjs +0 -376
  35. package/dist/__tests__/edge.test.cjs +0 -56
  36. package/dist/__tests__/edge.test.d.ts +0 -1
  37. package/dist/__tests__/edge.test.mjs +0 -69
  38. package/dist/__tests__/event-bus.test.cjs +0 -80
  39. package/dist/__tests__/event-bus.test.d.ts +0 -1
  40. package/dist/__tests__/event-bus.test.mjs +0 -51
  41. package/dist/__tests__/events-types.test.cjs +0 -184
  42. package/dist/__tests__/events-types.test.d.ts +0 -1
  43. package/dist/__tests__/events-types.test.mjs +0 -184
  44. package/dist/__tests__/export-image-plugin.test.cjs +0 -142
  45. package/dist/__tests__/export-image-plugin.test.d.ts +0 -1
  46. package/dist/__tests__/export-image-plugin.test.mjs +0 -118
  47. package/dist/__tests__/export.test.cjs +0 -237
  48. package/dist/__tests__/export.test.d.ts +0 -1
  49. package/dist/__tests__/export.test.mjs +0 -171
  50. package/dist/__tests__/flow-context.test.cjs +0 -16
  51. package/dist/__tests__/flow-context.test.d.ts +0 -1
  52. package/dist/__tests__/flow-context.test.mjs +0 -16
  53. package/dist/__tests__/flow-props.test.cjs +0 -94
  54. package/dist/__tests__/flow-props.test.d.ts +0 -1
  55. package/dist/__tests__/flow-props.test.mjs +0 -92
  56. package/dist/__tests__/flow.ssr.test.cjs +0 -156
  57. package/dist/__tests__/flow.ssr.test.d.ts +0 -1
  58. package/dist/__tests__/flow.ssr.test.mjs +0 -112
  59. package/dist/__tests__/geometry.test.cjs +0 -191
  60. package/dist/__tests__/geometry.test.d.ts +0 -1
  61. package/dist/__tests__/geometry.test.mjs +0 -105
  62. package/dist/__tests__/graph.test.cjs +0 -115
  63. package/dist/__tests__/graph.test.d.ts +0 -1
  64. package/dist/__tests__/graph.test.mjs +0 -85
  65. package/dist/__tests__/history-plugin.test.cjs +0 -191
  66. package/dist/__tests__/history-plugin.test.d.ts +0 -1
  67. package/dist/__tests__/history-plugin.test.mjs +0 -161
  68. package/dist/__tests__/history.test.cjs +0 -81
  69. package/dist/__tests__/history.test.d.ts +0 -1
  70. package/dist/__tests__/history.test.mjs +0 -43
  71. package/dist/__tests__/layout-plugin.test.cjs +0 -233
  72. package/dist/__tests__/layout-plugin.test.d.ts +0 -1
  73. package/dist/__tests__/layout-plugin.test.mjs +0 -215
  74. package/dist/__tests__/layout.test.cjs +0 -213
  75. package/dist/__tests__/layout.test.d.ts +0 -1
  76. package/dist/__tests__/layout.test.mjs +0 -170
  77. package/dist/__tests__/node-edit-panel.ssr.test.cjs +0 -168
  78. package/dist/__tests__/node-edit-panel.ssr.test.d.ts +0 -1
  79. package/dist/__tests__/node-edit-panel.ssr.test.mjs +0 -118
  80. package/dist/__tests__/node-group-plugin.test.cjs +0 -235
  81. package/dist/__tests__/node-group-plugin.test.d.ts +0 -1
  82. package/dist/__tests__/node-group-plugin.test.mjs +0 -187
  83. package/dist/__tests__/node-handles.test.cjs +0 -340
  84. package/dist/__tests__/node-handles.test.d.ts +0 -1
  85. package/dist/__tests__/node-handles.test.mjs +0 -230
  86. package/dist/__tests__/node-types.test.cjs +0 -368
  87. package/dist/__tests__/node-types.test.d.ts +0 -1
  88. package/dist/__tests__/node-types.test.mjs +0 -292
  89. package/dist/__tests__/performance.test.cjs +0 -313
  90. package/dist/__tests__/performance.test.d.ts +0 -1
  91. package/dist/__tests__/performance.test.mjs +0 -218
  92. package/dist/__tests__/plugin-advanced.test.cjs +0 -301
  93. package/dist/__tests__/plugin-advanced.test.d.ts +0 -1
  94. package/dist/__tests__/plugin-advanced.test.mjs +0 -225
  95. package/dist/__tests__/plugin.test.cjs +0 -151
  96. package/dist/__tests__/plugin.test.d.ts +0 -1
  97. package/dist/__tests__/plugin.test.mjs +0 -116
  98. package/dist/__tests__/plugins.test.cjs +0 -412
  99. package/dist/__tests__/plugins.test.d.ts +0 -1
  100. package/dist/__tests__/plugins.test.mjs +0 -402
  101. package/dist/__tests__/screenshot-capture.test.cjs +0 -183
  102. package/dist/__tests__/screenshot-capture.test.d.ts +0 -1
  103. package/dist/__tests__/screenshot-capture.test.mjs +0 -124
  104. package/dist/__tests__/screenshot.test.cjs +0 -74
  105. package/dist/__tests__/screenshot.test.d.ts +0 -1
  106. package/dist/__tests__/screenshot.test.mjs +0 -69
  107. package/dist/__tests__/theme.test.cjs +0 -185
  108. package/dist/__tests__/theme.test.d.ts +0 -1
  109. package/dist/__tests__/theme.test.mjs +0 -191
  110. package/dist/__tests__/transform.test.cjs +0 -384
  111. package/dist/__tests__/transform.test.d.ts +0 -1
  112. package/dist/__tests__/transform.test.mjs +0 -239
  113. package/dist/__tests__/useAlignment.test.cjs +0 -128
  114. package/dist/__tests__/useAlignment.test.d.ts +0 -1
  115. package/dist/__tests__/useAlignment.test.mjs +0 -72
  116. package/dist/__tests__/useEdges.test.cjs +0 -117
  117. package/dist/__tests__/useEdges.test.d.ts +0 -1
  118. package/dist/__tests__/useEdges.test.mjs +0 -80
  119. package/dist/__tests__/useKeyboard.test.cjs +0 -88
  120. package/dist/__tests__/useKeyboard.test.d.ts +0 -1
  121. package/dist/__tests__/useKeyboard.test.mjs +0 -56
  122. package/dist/__tests__/useNodeDistribution.test.cjs +0 -643
  123. package/dist/__tests__/useNodeDistribution.test.d.ts +0 -1
  124. package/dist/__tests__/useNodeDistribution.test.mjs +0 -297
  125. package/dist/__tests__/useNodes.test.cjs +0 -150
  126. package/dist/__tests__/useNodes.test.d.ts +0 -1
  127. package/dist/__tests__/useNodes.test.mjs +0 -80
  128. package/dist/__tests__/useSelection.test.cjs +0 -112
  129. package/dist/__tests__/useSelection.test.d.ts +0 -1
  130. package/dist/__tests__/useSelection.test.mjs +0 -76
  131. package/dist/__tests__/useViewport.test.cjs +0 -171
  132. package/dist/__tests__/useViewport.test.d.ts +0 -1
  133. package/dist/__tests__/useViewport.test.mjs +0 -82
  134. package/dist/__tests__/utils/ssr.cjs +0 -124
  135. package/dist/__tests__/utils/ssr.d.ts +0 -33
  136. package/dist/__tests__/utils/ssr.mjs +0 -129
  137. package/dist/__tests__/validation.test.cjs +0 -95
  138. package/dist/__tests__/validation.test.d.ts +0 -1
  139. package/dist/__tests__/validation.test.mjs +0 -36
  140. package/dist/__tests__/viewport-types.test.cjs +0 -324
  141. package/dist/__tests__/viewport-types.test.d.ts +0 -1
  142. package/dist/__tests__/viewport-types.test.mjs +0 -207
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yh-ui/flow",
3
- "version": "1.0.26",
3
+ "version": "1.0.36",
4
4
  "description": "YH-UI High-performance Flow Chart Component",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -24,7 +24,7 @@
24
24
  "dist"
25
25
  ],
26
26
  "scripts": {
27
- "build": "unbuild",
27
+ "build": "unbuild && rimraf dist/__tests__",
28
28
  "dev": "unbuild --stub",
29
29
  "prepack": "node ../../scripts/prepare-package-manifest.mjs prepare",
30
30
  "postpack": "node ../../scripts/prepare-package-manifest.mjs restore",
@@ -32,16 +32,16 @@
32
32
  "lint": "eslint ."
33
33
  },
34
34
  "dependencies": {
35
- "@yh-ui/utils": "^1.0.26",
36
- "@yh-ui/hooks": "^1.0.26"
35
+ "@yh-ui/utils": "^1.0.36",
36
+ "@yh-ui/hooks": "^1.0.36"
37
37
  },
38
38
  "devDependencies": {
39
- "vue": "^3.5.27",
39
+ "vue": "^3.5.35",
40
40
  "vue-tsc": "^2.2.0",
41
41
  "vue-sfc-transformer": "^0.1.17"
42
42
  },
43
43
  "peerDependencies": {
44
- "vue": "^3.5.27"
44
+ "vue": "^3.5.35"
45
45
  },
46
46
  "publishConfig": {
47
47
  "access": "public"
@@ -1,352 +0,0 @@
1
- "use strict";
2
-
3
- var _vitest = require("vitest");
4
- var _AiLlmNode = _interopRequireDefault(require("../components/nodes/ai-workflow/AiLlmNode.vue"));
5
- var _AiPromptNode = _interopRequireDefault(require("../components/nodes/ai-workflow/AiPromptNode.vue"));
6
- var _AiAgentNode = _interopRequireDefault(require("../components/nodes/ai-workflow/AiAgentNode.vue"));
7
- var _AiToolNode = _interopRequireDefault(require("../components/nodes/ai-workflow/AiToolNode.vue"));
8
- var _AiConditionNode = _interopRequireDefault(require("../components/nodes/ai-workflow/AiConditionNode.vue"));
9
- var _AiStartNode = _interopRequireDefault(require("../components/nodes/ai-workflow/AiStartNode.vue"));
10
- var _AiEndNode = _interopRequireDefault(require("../components/nodes/ai-workflow/AiEndNode.vue"));
11
- var _AiMemoryNode = _interopRequireDefault(require("../components/nodes/ai-workflow/AiMemoryNode.vue"));
12
- var _ssr = require("./utils/ssr.cjs");
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- (0, _vitest.describe)("AI Workflow Nodes SSR", () => {
15
- (0, _vitest.describe)("AiLlmNode", () => {
16
- (0, _vitest.it)("should render LLM node in SSR", async () => {
17
- const html = await (0, _ssr.renderSSR)(_AiLlmNode.default, {
18
- id: "llm-1",
19
- type: "ai-llm",
20
- data: {
21
- label: "GPT-4",
22
- model: "gpt-4"
23
- },
24
- selected: false,
25
- dragging: false,
26
- connectable: true
27
- });
28
- (0, _ssr.expectSSRContains)(html, "gpt-4");
29
- });
30
- (0, _vitest.it)("should render with model info in SSR", async () => {
31
- const html = await (0, _ssr.renderSSR)(_AiLlmNode.default, {
32
- id: "llm-1",
33
- type: "ai-llm",
34
- data: {
35
- label: "LLM",
36
- model: "gpt-4",
37
- temperature: 0.7
38
- },
39
- selected: false,
40
- dragging: false,
41
- connectable: true
42
- });
43
- (0, _ssr.expectSSRContains)(html, "gpt-4");
44
- });
45
- (0, _vitest.it)("should hydrate without mismatch", async () => {
46
- const result = await (0, _ssr.testHydration)(_AiLlmNode.default, {
47
- id: "llm-1",
48
- type: "ai-llm",
49
- data: {
50
- label: "GPT-4",
51
- model: "gpt-4"
52
- },
53
- selected: false,
54
- dragging: false,
55
- connectable: true
56
- });
57
- (0, _vitest.expect)(result.isMatch).toBe(true);
58
- });
59
- });
60
- (0, _vitest.describe)("AiPromptNode", () => {
61
- (0, _vitest.it)("should render prompt node in SSR", async () => {
62
- const html = await (0, _ssr.renderSSR)(_AiPromptNode.default, {
63
- id: "prompt-1",
64
- type: "ai-prompt",
65
- data: {
66
- label: "Prompt",
67
- prompt: "Hello world"
68
- },
69
- selected: false,
70
- dragging: false,
71
- connectable: true
72
- });
73
- (0, _ssr.expectSSRContains)(html, "\u63D0\u793A\u8BCD");
74
- });
75
- (0, _vitest.it)("should render with prompt content in SSR", async () => {
76
- const html = await (0, _ssr.renderSSR)(_AiPromptNode.default, {
77
- id: "prompt-1",
78
- type: "ai-prompt",
79
- data: {
80
- label: "Prompt",
81
- prompt: "Summarize this text"
82
- },
83
- selected: false,
84
- dragging: false,
85
- connectable: true
86
- });
87
- (0, _ssr.expectSSRContains)(html, "Summarize");
88
- });
89
- (0, _vitest.it)("should hydrate without mismatch", async () => {
90
- const result = await (0, _ssr.testHydration)(_AiPromptNode.default, {
91
- id: "prompt-1",
92
- type: "ai-prompt",
93
- data: {
94
- label: "Prompt",
95
- prompt: "Test prompt"
96
- },
97
- selected: false,
98
- dragging: false,
99
- connectable: true
100
- });
101
- (0, _vitest.expect)(result.isMatch).toBe(true);
102
- });
103
- });
104
- (0, _vitest.describe)("AiAgentNode", () => {
105
- (0, _vitest.it)("should render agent node in SSR", async () => {
106
- const html = await (0, _ssr.renderSSR)(_AiAgentNode.default, {
107
- id: "agent-1",
108
- type: "ai-agent",
109
- data: {
110
- label: "Agent",
111
- tools: ["tool1", "tool2"]
112
- },
113
- selected: false,
114
- dragging: false,
115
- connectable: true
116
- });
117
- (0, _ssr.expectSSRContains)(html, "Agent");
118
- });
119
- (0, _vitest.it)("should render tools count in SSR", async () => {
120
- const html = await (0, _ssr.renderSSR)(_AiAgentNode.default, {
121
- id: "agent-1",
122
- type: "ai-agent",
123
- data: {
124
- label: "Agent",
125
- tools: ["search", "calculator"]
126
- },
127
- selected: false,
128
- dragging: false,
129
- connectable: true
130
- });
131
- (0, _ssr.expectSSRContains)(html, "2");
132
- });
133
- (0, _vitest.it)("should hydrate without mismatch", async () => {
134
- const result = await (0, _ssr.testHydration)(_AiAgentNode.default, {
135
- id: "agent-1",
136
- type: "ai-agent",
137
- data: {
138
- label: "Agent",
139
- tools: ["tool1"]
140
- },
141
- selected: false,
142
- dragging: false,
143
- connectable: true
144
- });
145
- (0, _vitest.expect)(result.isMatch).toBe(true);
146
- });
147
- });
148
- (0, _vitest.describe)("AiToolNode", () => {
149
- (0, _vitest.it)("should render tool node in SSR", async () => {
150
- const html = await (0, _ssr.renderSSR)(_AiToolNode.default, {
151
- id: "tool-1",
152
- type: "ai-tool",
153
- data: {
154
- label: "Search Tool",
155
- toolName: "search"
156
- },
157
- selected: false,
158
- dragging: false,
159
- connectable: true
160
- });
161
- (0, _ssr.expectSSRContains)(html, "\u5DE5\u5177");
162
- (0, _ssr.expectSSRContains)(html, "search");
163
- });
164
- (0, _vitest.it)("should render with tool name in SSR", async () => {
165
- const html = await (0, _ssr.renderSSR)(_AiToolNode.default, {
166
- id: "tool-1",
167
- type: "ai-tool",
168
- data: {
169
- label: "Tool",
170
- toolName: "calculator"
171
- },
172
- selected: false,
173
- dragging: false,
174
- connectable: true
175
- });
176
- (0, _ssr.expectSSRContains)(html, "calculator");
177
- });
178
- (0, _vitest.it)("should hydrate without mismatch", async () => {
179
- const result = await (0, _ssr.testHydration)(_AiToolNode.default, {
180
- id: "tool-1",
181
- type: "ai-tool",
182
- data: {
183
- label: "Search",
184
- toolName: "search"
185
- },
186
- selected: false,
187
- dragging: false,
188
- connectable: true
189
- });
190
- (0, _vitest.expect)(result.isMatch).toBe(true);
191
- });
192
- });
193
- (0, _vitest.describe)("AiConditionNode", () => {
194
- (0, _vitest.it)("should render condition node in SSR", async () => {
195
- const html = await (0, _ssr.renderSSR)(_AiConditionNode.default, {
196
- id: "cond-1",
197
- type: "ai-condition",
198
- data: {
199
- label: "Condition",
200
- condition: "if"
201
- },
202
- selected: false,
203
- dragging: false,
204
- connectable: true
205
- });
206
- (0, _ssr.expectSSRContains)(html, "\u6761\u4EF6\u5206\u652F");
207
- });
208
- (0, _vitest.it)("should render with condition text in SSR", async () => {
209
- const html = await (0, _ssr.renderSSR)(_AiConditionNode.default, {
210
- id: "cond-1",
211
- type: "ai-condition",
212
- data: {
213
- label: "Check",
214
- condition: "score > 60"
215
- },
216
- selected: false,
217
- dragging: false,
218
- connectable: true
219
- });
220
- (0, _ssr.expectSSRContains)(html, "score");
221
- });
222
- (0, _vitest.it)("should hydrate without mismatch", async () => {
223
- const result = await (0, _ssr.testHydration)(_AiConditionNode.default, {
224
- id: "cond-1",
225
- type: "ai-condition",
226
- data: {
227
- label: "Condition",
228
- condition: "if"
229
- },
230
- selected: false,
231
- dragging: false,
232
- connectable: true
233
- });
234
- (0, _vitest.expect)(result.isMatch).toBe(true);
235
- });
236
- });
237
- (0, _vitest.describe)("AiStartNode", () => {
238
- (0, _vitest.it)("should render start node in SSR", async () => {
239
- const html = await (0, _ssr.renderSSR)(_AiStartNode.default, {
240
- id: "start-1",
241
- type: "ai-start",
242
- data: {
243
- label: "Start"
244
- },
245
- selected: false,
246
- dragging: false,
247
- connectable: true
248
- });
249
- (0, _ssr.expectSSRContains)(html, "\u25B6");
250
- });
251
- (0, _vitest.it)("should hydrate without mismatch", async () => {
252
- const result = await (0, _ssr.testHydration)(_AiStartNode.default, {
253
- id: "start-1",
254
- type: "ai-start",
255
- data: {
256
- label: "Start"
257
- },
258
- selected: false,
259
- dragging: false,
260
- connectable: true
261
- });
262
- (0, _vitest.expect)(result.isMatch).toBe(true);
263
- });
264
- });
265
- (0, _vitest.describe)("AiEndNode", () => {
266
- (0, _vitest.it)("should render end node in SSR", async () => {
267
- const html = await (0, _ssr.renderSSR)(_AiEndNode.default, {
268
- id: "end-1",
269
- type: "ai-end",
270
- data: {
271
- label: "End"
272
- },
273
- selected: false,
274
- dragging: false,
275
- connectable: true
276
- });
277
- (0, _ssr.expectSSRContains)(html, "\u25A0");
278
- });
279
- (0, _vitest.it)("should render with status in SSR", async () => {
280
- const html = await (0, _ssr.renderSSR)(_AiEndNode.default, {
281
- id: "end-1",
282
- type: "ai-end",
283
- data: {
284
- label: "End",
285
- status: "success"
286
- },
287
- selected: false,
288
- dragging: false,
289
- connectable: true
290
- });
291
- (0, _ssr.expectSSRContains)(html, "\u25A0");
292
- });
293
- (0, _vitest.it)("should hydrate without mismatch", async () => {
294
- const result = await (0, _ssr.testHydration)(_AiEndNode.default, {
295
- id: "end-1",
296
- type: "ai-end",
297
- data: {
298
- label: "End"
299
- },
300
- selected: false,
301
- dragging: false,
302
- connectable: true
303
- });
304
- (0, _vitest.expect)(result.isMatch).toBe(true);
305
- });
306
- });
307
- (0, _vitest.describe)("AiMemoryNode", () => {
308
- (0, _vitest.it)("should render memory node in SSR", async () => {
309
- const html = await (0, _ssr.renderSSR)(_AiMemoryNode.default, {
310
- id: "mem-1",
311
- type: "ai-memory",
312
- data: {
313
- label: "Memory",
314
- memoryType: "buffer"
315
- },
316
- selected: false,
317
- dragging: false,
318
- connectable: true
319
- });
320
- (0, _ssr.expectSSRContains)(html, "\u8BB0\u5FC6");
321
- (0, _ssr.expectSSRContains)(html, "buffer");
322
- });
323
- (0, _vitest.it)("should render with memory type in SSR", async () => {
324
- const html = await (0, _ssr.renderSSR)(_AiMemoryNode.default, {
325
- id: "mem-1",
326
- type: "ai-memory",
327
- data: {
328
- label: "Memory",
329
- memoryType: "vector"
330
- },
331
- selected: false,
332
- dragging: false,
333
- connectable: true
334
- });
335
- (0, _ssr.expectSSRContains)(html, "vector");
336
- });
337
- (0, _vitest.it)("should hydrate without mismatch", async () => {
338
- const result = await (0, _ssr.testHydration)(_AiMemoryNode.default, {
339
- id: "mem-1",
340
- type: "ai-memory",
341
- data: {
342
- label: "Memory",
343
- memoryType: "buffer"
344
- },
345
- selected: false,
346
- dragging: false,
347
- connectable: true
348
- });
349
- (0, _vitest.expect)(result.isMatch).toBe(true);
350
- });
351
- });
352
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,283 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import AiLlmNode from "../components/nodes/ai-workflow/AiLlmNode.vue";
3
- import AiPromptNode from "../components/nodes/ai-workflow/AiPromptNode.vue";
4
- import AiAgentNode from "../components/nodes/ai-workflow/AiAgentNode.vue";
5
- import AiToolNode from "../components/nodes/ai-workflow/AiToolNode.vue";
6
- import AiConditionNode from "../components/nodes/ai-workflow/AiConditionNode.vue";
7
- import AiStartNode from "../components/nodes/ai-workflow/AiStartNode.vue";
8
- import AiEndNode from "../components/nodes/ai-workflow/AiEndNode.vue";
9
- import AiMemoryNode from "../components/nodes/ai-workflow/AiMemoryNode.vue";
10
- import { renderSSR, expectSSRContains, testHydration } from "./utils/ssr.mjs";
11
- describe("AI Workflow Nodes SSR", () => {
12
- describe("AiLlmNode", () => {
13
- it("should render LLM node in SSR", async () => {
14
- const html = await renderSSR(AiLlmNode, {
15
- id: "llm-1",
16
- type: "ai-llm",
17
- data: { label: "GPT-4", model: "gpt-4" },
18
- selected: false,
19
- dragging: false,
20
- connectable: true
21
- });
22
- expectSSRContains(html, "gpt-4");
23
- });
24
- it("should render with model info in SSR", async () => {
25
- const html = await renderSSR(AiLlmNode, {
26
- id: "llm-1",
27
- type: "ai-llm",
28
- data: { label: "LLM", model: "gpt-4", temperature: 0.7 },
29
- selected: false,
30
- dragging: false,
31
- connectable: true
32
- });
33
- expectSSRContains(html, "gpt-4");
34
- });
35
- it("should hydrate without mismatch", async () => {
36
- const result = await testHydration(AiLlmNode, {
37
- id: "llm-1",
38
- type: "ai-llm",
39
- data: { label: "GPT-4", model: "gpt-4" },
40
- selected: false,
41
- dragging: false,
42
- connectable: true
43
- });
44
- expect(result.isMatch).toBe(true);
45
- });
46
- });
47
- describe("AiPromptNode", () => {
48
- it("should render prompt node in SSR", async () => {
49
- const html = await renderSSR(AiPromptNode, {
50
- id: "prompt-1",
51
- type: "ai-prompt",
52
- data: { label: "Prompt", prompt: "Hello world" },
53
- selected: false,
54
- dragging: false,
55
- connectable: true
56
- });
57
- expectSSRContains(html, "\u63D0\u793A\u8BCD");
58
- });
59
- it("should render with prompt content in SSR", async () => {
60
- const html = await renderSSR(AiPromptNode, {
61
- id: "prompt-1",
62
- type: "ai-prompt",
63
- data: { label: "Prompt", prompt: "Summarize this text" },
64
- selected: false,
65
- dragging: false,
66
- connectable: true
67
- });
68
- expectSSRContains(html, "Summarize");
69
- });
70
- it("should hydrate without mismatch", async () => {
71
- const result = await testHydration(AiPromptNode, {
72
- id: "prompt-1",
73
- type: "ai-prompt",
74
- data: { label: "Prompt", prompt: "Test prompt" },
75
- selected: false,
76
- dragging: false,
77
- connectable: true
78
- });
79
- expect(result.isMatch).toBe(true);
80
- });
81
- });
82
- describe("AiAgentNode", () => {
83
- it("should render agent node in SSR", async () => {
84
- const html = await renderSSR(AiAgentNode, {
85
- id: "agent-1",
86
- type: "ai-agent",
87
- data: { label: "Agent", tools: ["tool1", "tool2"] },
88
- selected: false,
89
- dragging: false,
90
- connectable: true
91
- });
92
- expectSSRContains(html, "Agent");
93
- });
94
- it("should render tools count in SSR", async () => {
95
- const html = await renderSSR(AiAgentNode, {
96
- id: "agent-1",
97
- type: "ai-agent",
98
- data: { label: "Agent", tools: ["search", "calculator"] },
99
- selected: false,
100
- dragging: false,
101
- connectable: true
102
- });
103
- expectSSRContains(html, "2");
104
- });
105
- it("should hydrate without mismatch", async () => {
106
- const result = await testHydration(AiAgentNode, {
107
- id: "agent-1",
108
- type: "ai-agent",
109
- data: { label: "Agent", tools: ["tool1"] },
110
- selected: false,
111
- dragging: false,
112
- connectable: true
113
- });
114
- expect(result.isMatch).toBe(true);
115
- });
116
- });
117
- describe("AiToolNode", () => {
118
- it("should render tool node in SSR", async () => {
119
- const html = await renderSSR(AiToolNode, {
120
- id: "tool-1",
121
- type: "ai-tool",
122
- data: { label: "Search Tool", toolName: "search" },
123
- selected: false,
124
- dragging: false,
125
- connectable: true
126
- });
127
- expectSSRContains(html, "\u5DE5\u5177");
128
- expectSSRContains(html, "search");
129
- });
130
- it("should render with tool name in SSR", async () => {
131
- const html = await renderSSR(AiToolNode, {
132
- id: "tool-1",
133
- type: "ai-tool",
134
- data: { label: "Tool", toolName: "calculator" },
135
- selected: false,
136
- dragging: false,
137
- connectable: true
138
- });
139
- expectSSRContains(html, "calculator");
140
- });
141
- it("should hydrate without mismatch", async () => {
142
- const result = await testHydration(AiToolNode, {
143
- id: "tool-1",
144
- type: "ai-tool",
145
- data: { label: "Search", toolName: "search" },
146
- selected: false,
147
- dragging: false,
148
- connectable: true
149
- });
150
- expect(result.isMatch).toBe(true);
151
- });
152
- });
153
- describe("AiConditionNode", () => {
154
- it("should render condition node in SSR", async () => {
155
- const html = await renderSSR(AiConditionNode, {
156
- id: "cond-1",
157
- type: "ai-condition",
158
- data: { label: "Condition", condition: "if" },
159
- selected: false,
160
- dragging: false,
161
- connectable: true
162
- });
163
- expectSSRContains(html, "\u6761\u4EF6\u5206\u652F");
164
- });
165
- it("should render with condition text in SSR", async () => {
166
- const html = await renderSSR(AiConditionNode, {
167
- id: "cond-1",
168
- type: "ai-condition",
169
- data: { label: "Check", condition: "score > 60" },
170
- selected: false,
171
- dragging: false,
172
- connectable: true
173
- });
174
- expectSSRContains(html, "score");
175
- });
176
- it("should hydrate without mismatch", async () => {
177
- const result = await testHydration(AiConditionNode, {
178
- id: "cond-1",
179
- type: "ai-condition",
180
- data: { label: "Condition", condition: "if" },
181
- selected: false,
182
- dragging: false,
183
- connectable: true
184
- });
185
- expect(result.isMatch).toBe(true);
186
- });
187
- });
188
- describe("AiStartNode", () => {
189
- it("should render start node in SSR", async () => {
190
- const html = await renderSSR(AiStartNode, {
191
- id: "start-1",
192
- type: "ai-start",
193
- data: { label: "Start" },
194
- selected: false,
195
- dragging: false,
196
- connectable: true
197
- });
198
- expectSSRContains(html, "\u25B6");
199
- });
200
- it("should hydrate without mismatch", async () => {
201
- const result = await testHydration(AiStartNode, {
202
- id: "start-1",
203
- type: "ai-start",
204
- data: { label: "Start" },
205
- selected: false,
206
- dragging: false,
207
- connectable: true
208
- });
209
- expect(result.isMatch).toBe(true);
210
- });
211
- });
212
- describe("AiEndNode", () => {
213
- it("should render end node in SSR", async () => {
214
- const html = await renderSSR(AiEndNode, {
215
- id: "end-1",
216
- type: "ai-end",
217
- data: { label: "End" },
218
- selected: false,
219
- dragging: false,
220
- connectable: true
221
- });
222
- expectSSRContains(html, "\u25A0");
223
- });
224
- it("should render with status in SSR", async () => {
225
- const html = await renderSSR(AiEndNode, {
226
- id: "end-1",
227
- type: "ai-end",
228
- data: { label: "End", status: "success" },
229
- selected: false,
230
- dragging: false,
231
- connectable: true
232
- });
233
- expectSSRContains(html, "\u25A0");
234
- });
235
- it("should hydrate without mismatch", async () => {
236
- const result = await testHydration(AiEndNode, {
237
- id: "end-1",
238
- type: "ai-end",
239
- data: { label: "End" },
240
- selected: false,
241
- dragging: false,
242
- connectable: true
243
- });
244
- expect(result.isMatch).toBe(true);
245
- });
246
- });
247
- describe("AiMemoryNode", () => {
248
- it("should render memory node in SSR", async () => {
249
- const html = await renderSSR(AiMemoryNode, {
250
- id: "mem-1",
251
- type: "ai-memory",
252
- data: { label: "Memory", memoryType: "buffer" },
253
- selected: false,
254
- dragging: false,
255
- connectable: true
256
- });
257
- expectSSRContains(html, "\u8BB0\u5FC6");
258
- expectSSRContains(html, "buffer");
259
- });
260
- it("should render with memory type in SSR", async () => {
261
- const html = await renderSSR(AiMemoryNode, {
262
- id: "mem-1",
263
- type: "ai-memory",
264
- data: { label: "Memory", memoryType: "vector" },
265
- selected: false,
266
- dragging: false,
267
- connectable: true
268
- });
269
- expectSSRContains(html, "vector");
270
- });
271
- it("should hydrate without mismatch", async () => {
272
- const result = await testHydration(AiMemoryNode, {
273
- id: "mem-1",
274
- type: "ai-memory",
275
- data: { label: "Memory", memoryType: "buffer" },
276
- selected: false,
277
- dragging: false,
278
- connectable: true
279
- });
280
- expect(result.isMatch).toBe(true);
281
- });
282
- });
283
- });