- 分阶段加载智能体配置并按需缓存 MCP 工具 - 合并画布状态更新与节点尺寸监听,启用大图可视区域渲染和静态连线 - 隔离 Tinyflow Store 实例并补充数据同步与回归测试
77 lines
2.1 KiB
TypeScript
77 lines
2.1 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
|
|
import { createTinyflowDataSync } from './dataSync';
|
|
|
|
describe('createTinyflowDataSync', () => {
|
|
it('克隆真正的外部数据并跳过相同内容', () => {
|
|
const sync = createTinyflowDataSync();
|
|
const data = {
|
|
edges: [],
|
|
nodes: [{ data: { title: '开始' }, id: 'start', position: { x: 0, y: 0 } }],
|
|
};
|
|
|
|
const cloned = sync.cloneExternalDataIfChanged(data);
|
|
|
|
expect(cloned).toEqual(data);
|
|
expect(cloned).not.toBe(data);
|
|
expect(sync.cloneExternalDataIfChanged(data)).toBeNull();
|
|
});
|
|
|
|
it('跳过原生画布回传后由父组件形成的属性回声', () => {
|
|
const sync = createTinyflowDataSync();
|
|
const emitted = {
|
|
edges: [],
|
|
nodes: [{ data: { title: '开始' }, id: 'start', position: { x: 12, y: 8 } }],
|
|
viewport: { x: 20, y: 30, zoom: 1 },
|
|
};
|
|
|
|
sync.markNativeData(emitted);
|
|
|
|
expect(
|
|
sync.cloneExternalDataIfChanged(structuredClone(emitted)),
|
|
).toBeNull();
|
|
});
|
|
|
|
it('原生回传后仍应用内容不同的外部更新', () => {
|
|
const sync = createTinyflowDataSync();
|
|
const emitted = {
|
|
edges: [],
|
|
nodes: [{ data: { title: '开始' }, id: 'start', position: { x: 12, y: 8 } }],
|
|
};
|
|
sync.markNativeData(emitted);
|
|
|
|
const external = {
|
|
...emitted,
|
|
nodes: [
|
|
{
|
|
...emitted.nodes[0],
|
|
data: { title: '已更新' },
|
|
},
|
|
],
|
|
};
|
|
|
|
expect(sync.cloneExternalDataIfChanged(external)).toEqual(external);
|
|
});
|
|
|
|
it('画布变化后允许重新应用曾经加载过的外部版本', () => {
|
|
const sync = createTinyflowDataSync();
|
|
const initial = {
|
|
edges: [],
|
|
nodes: [{ data: { title: '初始' }, id: 'start', position: { x: 0, y: 0 } }],
|
|
};
|
|
expect(sync.cloneExternalDataIfChanged(initial)).toEqual(initial);
|
|
|
|
sync.markNativeData({
|
|
...initial,
|
|
nodes: [
|
|
{
|
|
...initial.nodes[0],
|
|
position: { x: 120, y: 80 },
|
|
},
|
|
],
|
|
});
|
|
|
|
expect(sync.cloneExternalDataIfChanged(initial)).toEqual(initial);
|
|
});
|
|
});
|