@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.
- package/package.json +6 -6
- package/dist/__tests__/ai-workflow.ssr.test.cjs +0 -352
- package/dist/__tests__/ai-workflow.ssr.test.d.ts +0 -1
- package/dist/__tests__/ai-workflow.ssr.test.mjs +0 -283
- package/dist/__tests__/ai-workflow.test.cjs +0 -109
- package/dist/__tests__/ai-workflow.test.d.ts +0 -1
- package/dist/__tests__/ai-workflow.test.mjs +0 -112
- package/dist/__tests__/bpmn-engine.test.cjs +0 -357
- package/dist/__tests__/bpmn-engine.test.d.ts +0 -1
- package/dist/__tests__/bpmn-engine.test.mjs +0 -406
- package/dist/__tests__/bpmn-utils.test.cjs +0 -268
- package/dist/__tests__/bpmn-utils.test.d.ts +0 -1
- package/dist/__tests__/bpmn-utils.test.mjs +0 -227
- package/dist/__tests__/bpmn-xml.test.cjs +0 -150
- package/dist/__tests__/bpmn-xml.test.d.ts +0 -1
- package/dist/__tests__/bpmn-xml.test.mjs +0 -112
- package/dist/__tests__/bpmn.ssr.test.cjs +0 -278
- package/dist/__tests__/bpmn.ssr.test.d.ts +0 -1
- package/dist/__tests__/bpmn.ssr.test.mjs +0 -237
- package/dist/__tests__/bpmn.test.cjs +0 -103
- package/dist/__tests__/bpmn.test.d.ts +0 -1
- package/dist/__tests__/bpmn.test.mjs +0 -106
- package/dist/__tests__/collaboration.test.cjs +0 -487
- package/dist/__tests__/collaboration.test.d.ts +0 -1
- package/dist/__tests__/collaboration.test.mjs +0 -424
- package/dist/__tests__/custom-types.test.cjs +0 -300
- package/dist/__tests__/custom-types.test.d.ts +0 -1
- package/dist/__tests__/custom-types.test.mjs +0 -248
- package/dist/__tests__/edge-types.test.cjs +0 -275
- package/dist/__tests__/edge-types.test.d.ts +0 -1
- package/dist/__tests__/edge-types.test.mjs +0 -234
- package/dist/__tests__/edge-utils.test.cjs +0 -375
- package/dist/__tests__/edge-utils.test.d.ts +0 -1
- package/dist/__tests__/edge-utils.test.mjs +0 -376
- package/dist/__tests__/edge.test.cjs +0 -56
- package/dist/__tests__/edge.test.d.ts +0 -1
- package/dist/__tests__/edge.test.mjs +0 -69
- package/dist/__tests__/event-bus.test.cjs +0 -80
- package/dist/__tests__/event-bus.test.d.ts +0 -1
- package/dist/__tests__/event-bus.test.mjs +0 -51
- package/dist/__tests__/events-types.test.cjs +0 -184
- package/dist/__tests__/events-types.test.d.ts +0 -1
- package/dist/__tests__/events-types.test.mjs +0 -184
- package/dist/__tests__/export-image-plugin.test.cjs +0 -142
- package/dist/__tests__/export-image-plugin.test.d.ts +0 -1
- package/dist/__tests__/export-image-plugin.test.mjs +0 -118
- package/dist/__tests__/export.test.cjs +0 -237
- package/dist/__tests__/export.test.d.ts +0 -1
- package/dist/__tests__/export.test.mjs +0 -171
- package/dist/__tests__/flow-context.test.cjs +0 -16
- package/dist/__tests__/flow-context.test.d.ts +0 -1
- package/dist/__tests__/flow-context.test.mjs +0 -16
- package/dist/__tests__/flow-props.test.cjs +0 -94
- package/dist/__tests__/flow-props.test.d.ts +0 -1
- package/dist/__tests__/flow-props.test.mjs +0 -92
- package/dist/__tests__/flow.ssr.test.cjs +0 -156
- package/dist/__tests__/flow.ssr.test.d.ts +0 -1
- package/dist/__tests__/flow.ssr.test.mjs +0 -112
- package/dist/__tests__/geometry.test.cjs +0 -191
- package/dist/__tests__/geometry.test.d.ts +0 -1
- package/dist/__tests__/geometry.test.mjs +0 -105
- package/dist/__tests__/graph.test.cjs +0 -115
- package/dist/__tests__/graph.test.d.ts +0 -1
- package/dist/__tests__/graph.test.mjs +0 -85
- package/dist/__tests__/history-plugin.test.cjs +0 -191
- package/dist/__tests__/history-plugin.test.d.ts +0 -1
- package/dist/__tests__/history-plugin.test.mjs +0 -161
- package/dist/__tests__/history.test.cjs +0 -81
- package/dist/__tests__/history.test.d.ts +0 -1
- package/dist/__tests__/history.test.mjs +0 -43
- package/dist/__tests__/layout-plugin.test.cjs +0 -233
- package/dist/__tests__/layout-plugin.test.d.ts +0 -1
- package/dist/__tests__/layout-plugin.test.mjs +0 -215
- package/dist/__tests__/layout.test.cjs +0 -213
- package/dist/__tests__/layout.test.d.ts +0 -1
- package/dist/__tests__/layout.test.mjs +0 -170
- package/dist/__tests__/node-edit-panel.ssr.test.cjs +0 -168
- package/dist/__tests__/node-edit-panel.ssr.test.d.ts +0 -1
- package/dist/__tests__/node-edit-panel.ssr.test.mjs +0 -118
- package/dist/__tests__/node-group-plugin.test.cjs +0 -235
- package/dist/__tests__/node-group-plugin.test.d.ts +0 -1
- package/dist/__tests__/node-group-plugin.test.mjs +0 -187
- package/dist/__tests__/node-handles.test.cjs +0 -340
- package/dist/__tests__/node-handles.test.d.ts +0 -1
- package/dist/__tests__/node-handles.test.mjs +0 -230
- package/dist/__tests__/node-types.test.cjs +0 -368
- package/dist/__tests__/node-types.test.d.ts +0 -1
- package/dist/__tests__/node-types.test.mjs +0 -292
- package/dist/__tests__/performance.test.cjs +0 -313
- package/dist/__tests__/performance.test.d.ts +0 -1
- package/dist/__tests__/performance.test.mjs +0 -218
- package/dist/__tests__/plugin-advanced.test.cjs +0 -301
- package/dist/__tests__/plugin-advanced.test.d.ts +0 -1
- package/dist/__tests__/plugin-advanced.test.mjs +0 -225
- package/dist/__tests__/plugin.test.cjs +0 -151
- package/dist/__tests__/plugin.test.d.ts +0 -1
- package/dist/__tests__/plugin.test.mjs +0 -116
- package/dist/__tests__/plugins.test.cjs +0 -412
- package/dist/__tests__/plugins.test.d.ts +0 -1
- package/dist/__tests__/plugins.test.mjs +0 -402
- package/dist/__tests__/screenshot-capture.test.cjs +0 -183
- package/dist/__tests__/screenshot-capture.test.d.ts +0 -1
- package/dist/__tests__/screenshot-capture.test.mjs +0 -124
- package/dist/__tests__/screenshot.test.cjs +0 -74
- package/dist/__tests__/screenshot.test.d.ts +0 -1
- package/dist/__tests__/screenshot.test.mjs +0 -69
- package/dist/__tests__/theme.test.cjs +0 -185
- package/dist/__tests__/theme.test.d.ts +0 -1
- package/dist/__tests__/theme.test.mjs +0 -191
- package/dist/__tests__/transform.test.cjs +0 -384
- package/dist/__tests__/transform.test.d.ts +0 -1
- package/dist/__tests__/transform.test.mjs +0 -239
- package/dist/__tests__/useAlignment.test.cjs +0 -128
- package/dist/__tests__/useAlignment.test.d.ts +0 -1
- package/dist/__tests__/useAlignment.test.mjs +0 -72
- package/dist/__tests__/useEdges.test.cjs +0 -117
- package/dist/__tests__/useEdges.test.d.ts +0 -1
- package/dist/__tests__/useEdges.test.mjs +0 -80
- package/dist/__tests__/useKeyboard.test.cjs +0 -88
- package/dist/__tests__/useKeyboard.test.d.ts +0 -1
- package/dist/__tests__/useKeyboard.test.mjs +0 -56
- package/dist/__tests__/useNodeDistribution.test.cjs +0 -643
- package/dist/__tests__/useNodeDistribution.test.d.ts +0 -1
- package/dist/__tests__/useNodeDistribution.test.mjs +0 -297
- package/dist/__tests__/useNodes.test.cjs +0 -150
- package/dist/__tests__/useNodes.test.d.ts +0 -1
- package/dist/__tests__/useNodes.test.mjs +0 -80
- package/dist/__tests__/useSelection.test.cjs +0 -112
- package/dist/__tests__/useSelection.test.d.ts +0 -1
- package/dist/__tests__/useSelection.test.mjs +0 -76
- package/dist/__tests__/useViewport.test.cjs +0 -171
- package/dist/__tests__/useViewport.test.d.ts +0 -1
- package/dist/__tests__/useViewport.test.mjs +0 -82
- package/dist/__tests__/utils/ssr.cjs +0 -124
- package/dist/__tests__/utils/ssr.d.ts +0 -33
- package/dist/__tests__/utils/ssr.mjs +0 -129
- package/dist/__tests__/validation.test.cjs +0 -95
- package/dist/__tests__/validation.test.d.ts +0 -1
- package/dist/__tests__/validation.test.mjs +0 -36
- package/dist/__tests__/viewport-types.test.cjs +0 -324
- package/dist/__tests__/viewport-types.test.d.ts +0 -1
- 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.
|
|
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.
|
|
36
|
-
"@yh-ui/hooks": "^1.0.
|
|
35
|
+
"@yh-ui/utils": "^1.0.36",
|
|
36
|
+
"@yh-ui/hooks": "^1.0.36"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"vue": "^3.5.
|
|
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.
|
|
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
|
-
});
|