@yh-ui/flow 1.0.25 → 1.0.30

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 (143) hide show
  1. package/package.json +13 -11
  2. package/LICENSE +0 -21
  3. package/dist/__tests__/ai-workflow.ssr.test.cjs +0 -352
  4. package/dist/__tests__/ai-workflow.ssr.test.d.ts +0 -1
  5. package/dist/__tests__/ai-workflow.ssr.test.mjs +0 -283
  6. package/dist/__tests__/ai-workflow.test.cjs +0 -109
  7. package/dist/__tests__/ai-workflow.test.d.ts +0 -1
  8. package/dist/__tests__/ai-workflow.test.mjs +0 -112
  9. package/dist/__tests__/bpmn-engine.test.cjs +0 -357
  10. package/dist/__tests__/bpmn-engine.test.d.ts +0 -1
  11. package/dist/__tests__/bpmn-engine.test.mjs +0 -406
  12. package/dist/__tests__/bpmn-utils.test.cjs +0 -268
  13. package/dist/__tests__/bpmn-utils.test.d.ts +0 -1
  14. package/dist/__tests__/bpmn-utils.test.mjs +0 -227
  15. package/dist/__tests__/bpmn-xml.test.cjs +0 -150
  16. package/dist/__tests__/bpmn-xml.test.d.ts +0 -1
  17. package/dist/__tests__/bpmn-xml.test.mjs +0 -112
  18. package/dist/__tests__/bpmn.ssr.test.cjs +0 -278
  19. package/dist/__tests__/bpmn.ssr.test.d.ts +0 -1
  20. package/dist/__tests__/bpmn.ssr.test.mjs +0 -237
  21. package/dist/__tests__/bpmn.test.cjs +0 -103
  22. package/dist/__tests__/bpmn.test.d.ts +0 -1
  23. package/dist/__tests__/bpmn.test.mjs +0 -106
  24. package/dist/__tests__/collaboration.test.cjs +0 -487
  25. package/dist/__tests__/collaboration.test.d.ts +0 -1
  26. package/dist/__tests__/collaboration.test.mjs +0 -424
  27. package/dist/__tests__/custom-types.test.cjs +0 -300
  28. package/dist/__tests__/custom-types.test.d.ts +0 -1
  29. package/dist/__tests__/custom-types.test.mjs +0 -248
  30. package/dist/__tests__/edge-types.test.cjs +0 -275
  31. package/dist/__tests__/edge-types.test.d.ts +0 -1
  32. package/dist/__tests__/edge-types.test.mjs +0 -234
  33. package/dist/__tests__/edge-utils.test.cjs +0 -375
  34. package/dist/__tests__/edge-utils.test.d.ts +0 -1
  35. package/dist/__tests__/edge-utils.test.mjs +0 -376
  36. package/dist/__tests__/edge.test.cjs +0 -56
  37. package/dist/__tests__/edge.test.d.ts +0 -1
  38. package/dist/__tests__/edge.test.mjs +0 -69
  39. package/dist/__tests__/event-bus.test.cjs +0 -80
  40. package/dist/__tests__/event-bus.test.d.ts +0 -1
  41. package/dist/__tests__/event-bus.test.mjs +0 -51
  42. package/dist/__tests__/events-types.test.cjs +0 -184
  43. package/dist/__tests__/events-types.test.d.ts +0 -1
  44. package/dist/__tests__/events-types.test.mjs +0 -184
  45. package/dist/__tests__/export-image-plugin.test.cjs +0 -142
  46. package/dist/__tests__/export-image-plugin.test.d.ts +0 -1
  47. package/dist/__tests__/export-image-plugin.test.mjs +0 -118
  48. package/dist/__tests__/export.test.cjs +0 -237
  49. package/dist/__tests__/export.test.d.ts +0 -1
  50. package/dist/__tests__/export.test.mjs +0 -171
  51. package/dist/__tests__/flow-context.test.cjs +0 -16
  52. package/dist/__tests__/flow-context.test.d.ts +0 -1
  53. package/dist/__tests__/flow-context.test.mjs +0 -16
  54. package/dist/__tests__/flow-props.test.cjs +0 -94
  55. package/dist/__tests__/flow-props.test.d.ts +0 -1
  56. package/dist/__tests__/flow-props.test.mjs +0 -92
  57. package/dist/__tests__/flow.ssr.test.cjs +0 -156
  58. package/dist/__tests__/flow.ssr.test.d.ts +0 -1
  59. package/dist/__tests__/flow.ssr.test.mjs +0 -112
  60. package/dist/__tests__/geometry.test.cjs +0 -191
  61. package/dist/__tests__/geometry.test.d.ts +0 -1
  62. package/dist/__tests__/geometry.test.mjs +0 -105
  63. package/dist/__tests__/graph.test.cjs +0 -115
  64. package/dist/__tests__/graph.test.d.ts +0 -1
  65. package/dist/__tests__/graph.test.mjs +0 -85
  66. package/dist/__tests__/history-plugin.test.cjs +0 -191
  67. package/dist/__tests__/history-plugin.test.d.ts +0 -1
  68. package/dist/__tests__/history-plugin.test.mjs +0 -161
  69. package/dist/__tests__/history.test.cjs +0 -81
  70. package/dist/__tests__/history.test.d.ts +0 -1
  71. package/dist/__tests__/history.test.mjs +0 -43
  72. package/dist/__tests__/layout-plugin.test.cjs +0 -233
  73. package/dist/__tests__/layout-plugin.test.d.ts +0 -1
  74. package/dist/__tests__/layout-plugin.test.mjs +0 -215
  75. package/dist/__tests__/layout.test.cjs +0 -213
  76. package/dist/__tests__/layout.test.d.ts +0 -1
  77. package/dist/__tests__/layout.test.mjs +0 -170
  78. package/dist/__tests__/node-edit-panel.ssr.test.cjs +0 -168
  79. package/dist/__tests__/node-edit-panel.ssr.test.d.ts +0 -1
  80. package/dist/__tests__/node-edit-panel.ssr.test.mjs +0 -118
  81. package/dist/__tests__/node-group-plugin.test.cjs +0 -235
  82. package/dist/__tests__/node-group-plugin.test.d.ts +0 -1
  83. package/dist/__tests__/node-group-plugin.test.mjs +0 -187
  84. package/dist/__tests__/node-handles.test.cjs +0 -340
  85. package/dist/__tests__/node-handles.test.d.ts +0 -1
  86. package/dist/__tests__/node-handles.test.mjs +0 -230
  87. package/dist/__tests__/node-types.test.cjs +0 -368
  88. package/dist/__tests__/node-types.test.d.ts +0 -1
  89. package/dist/__tests__/node-types.test.mjs +0 -292
  90. package/dist/__tests__/performance.test.cjs +0 -313
  91. package/dist/__tests__/performance.test.d.ts +0 -1
  92. package/dist/__tests__/performance.test.mjs +0 -218
  93. package/dist/__tests__/plugin-advanced.test.cjs +0 -301
  94. package/dist/__tests__/plugin-advanced.test.d.ts +0 -1
  95. package/dist/__tests__/plugin-advanced.test.mjs +0 -225
  96. package/dist/__tests__/plugin.test.cjs +0 -151
  97. package/dist/__tests__/plugin.test.d.ts +0 -1
  98. package/dist/__tests__/plugin.test.mjs +0 -116
  99. package/dist/__tests__/plugins.test.cjs +0 -412
  100. package/dist/__tests__/plugins.test.d.ts +0 -1
  101. package/dist/__tests__/plugins.test.mjs +0 -402
  102. package/dist/__tests__/screenshot-capture.test.cjs +0 -183
  103. package/dist/__tests__/screenshot-capture.test.d.ts +0 -1
  104. package/dist/__tests__/screenshot-capture.test.mjs +0 -124
  105. package/dist/__tests__/screenshot.test.cjs +0 -74
  106. package/dist/__tests__/screenshot.test.d.ts +0 -1
  107. package/dist/__tests__/screenshot.test.mjs +0 -69
  108. package/dist/__tests__/theme.test.cjs +0 -185
  109. package/dist/__tests__/theme.test.d.ts +0 -1
  110. package/dist/__tests__/theme.test.mjs +0 -191
  111. package/dist/__tests__/transform.test.cjs +0 -384
  112. package/dist/__tests__/transform.test.d.ts +0 -1
  113. package/dist/__tests__/transform.test.mjs +0 -239
  114. package/dist/__tests__/useAlignment.test.cjs +0 -128
  115. package/dist/__tests__/useAlignment.test.d.ts +0 -1
  116. package/dist/__tests__/useAlignment.test.mjs +0 -72
  117. package/dist/__tests__/useEdges.test.cjs +0 -117
  118. package/dist/__tests__/useEdges.test.d.ts +0 -1
  119. package/dist/__tests__/useEdges.test.mjs +0 -80
  120. package/dist/__tests__/useKeyboard.test.cjs +0 -88
  121. package/dist/__tests__/useKeyboard.test.d.ts +0 -1
  122. package/dist/__tests__/useKeyboard.test.mjs +0 -56
  123. package/dist/__tests__/useNodeDistribution.test.cjs +0 -643
  124. package/dist/__tests__/useNodeDistribution.test.d.ts +0 -1
  125. package/dist/__tests__/useNodeDistribution.test.mjs +0 -297
  126. package/dist/__tests__/useNodes.test.cjs +0 -150
  127. package/dist/__tests__/useNodes.test.d.ts +0 -1
  128. package/dist/__tests__/useNodes.test.mjs +0 -80
  129. package/dist/__tests__/useSelection.test.cjs +0 -112
  130. package/dist/__tests__/useSelection.test.d.ts +0 -1
  131. package/dist/__tests__/useSelection.test.mjs +0 -76
  132. package/dist/__tests__/useViewport.test.cjs +0 -171
  133. package/dist/__tests__/useViewport.test.d.ts +0 -1
  134. package/dist/__tests__/useViewport.test.mjs +0 -82
  135. package/dist/__tests__/utils/ssr.cjs +0 -124
  136. package/dist/__tests__/utils/ssr.d.ts +0 -33
  137. package/dist/__tests__/utils/ssr.mjs +0 -129
  138. package/dist/__tests__/validation.test.cjs +0 -95
  139. package/dist/__tests__/validation.test.d.ts +0 -1
  140. package/dist/__tests__/validation.test.mjs +0 -36
  141. package/dist/__tests__/viewport-types.test.cjs +0 -324
  142. package/dist/__tests__/viewport-types.test.d.ts +0 -1
  143. 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.25",
3
+ "version": "1.0.30",
4
4
  "description": "YH-UI High-performance Flow Chart Component",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -23,9 +23,17 @@
23
23
  "files": [
24
24
  "dist"
25
25
  ],
26
+ "scripts": {
27
+ "build": "unbuild && rimraf dist/__tests__",
28
+ "dev": "unbuild --stub",
29
+ "prepack": "node ../../scripts/prepare-package-manifest.mjs prepare",
30
+ "postpack": "node ../../scripts/prepare-package-manifest.mjs restore",
31
+ "typecheck": "vue-tsc --noEmit",
32
+ "lint": "eslint ."
33
+ },
26
34
  "dependencies": {
27
- "@yh-ui/utils": "^1.0.25",
28
- "@yh-ui/hooks": "^1.0.25"
35
+ "@yh-ui/utils": "^1.0.30",
36
+ "@yh-ui/hooks": "^1.0.30"
29
37
  },
30
38
  "devDependencies": {
31
39
  "vue": "^3.5.27",
@@ -53,11 +61,5 @@
53
61
  ],
54
62
  "homepage": "https://1079161148.github.io/yh-ui/",
55
63
  "author": "YH-UI Team",
56
- "license": "MIT",
57
- "scripts": {
58
- "build": "unbuild",
59
- "dev": "unbuild --stub",
60
- "typecheck": "vue-tsc --noEmit",
61
- "lint": "eslint ."
62
- }
63
- }
64
+ "license": "MIT"
65
+ }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 YH-UI Team
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -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
- });