schyma
Version:
JSON Schemas Visualizer React component
44 lines • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const reactflow_1 = require("reactflow");
const dagreLayout_1 = require("../dagreLayout");
const createNode = (id) => ({
id,
data: { label: id },
position: { x: 0, y: 0 },
});
const createEdge = (id, source, target) => ({
id,
source,
target,
});
describe('getLayoutedElements', () => {
it('applies horizontal layout and sets node handle positions', () => {
const nodes = [createNode('A'), createNode('B')];
const edges = [createEdge('A-B', 'A', 'B')];
const result = (0, dagreLayout_1.getLayoutedElements)(nodes, edges);
expect(result.nodes).toHaveLength(2);
expect(result.edges).toEqual(edges);
const nodeA = result.nodes.find((node) => node.id === 'A');
const nodeB = result.nodes.find((node) => node.id === 'B');
expect(nodeA).toBeDefined();
expect(nodeB).toBeDefined();
expect(nodeA === null || nodeA === void 0 ? void 0 : nodeA.sourcePosition).toBe(reactflow_1.Position.Right);
expect(nodeA === null || nodeA === void 0 ? void 0 : nodeA.targetPosition).toBe(reactflow_1.Position.Left);
expect(nodeB === null || nodeB === void 0 ? void 0 : nodeB.sourcePosition).toBe(reactflow_1.Position.Right);
expect(nodeB === null || nodeB === void 0 ? void 0 : nodeB.targetPosition).toBe(reactflow_1.Position.Left);
expect(nodeB.position.x).toBeGreaterThan(nodeA.position.x);
expect(Number.isFinite(nodeA.position.x)).toBe(true);
expect(Number.isFinite(nodeA.position.y)).toBe(true);
expect(Number.isFinite(nodeB.position.x)).toBe(true);
expect(Number.isFinite(nodeB.position.y)).toBe(true);
});
it('mutates and returns the same node and edge arrays', () => {
const nodes = [createNode('A'), createNode('B')];
const edges = [createEdge('A-B', 'A', 'B')];
const result = (0, dagreLayout_1.getLayoutedElements)(nodes, edges);
expect(result.nodes).toBe(nodes);
expect(result.edges).toBe(edges);
});
});
//# sourceMappingURL=dagreLayout.test.js.map