Assessor_2.0/tests/features/graph-card-connection.test.ts

21 lines
905 B
TypeScript

import { describe, expect, it } from 'vitest';
import { graphCardConnection } from '../../src/features/mitre-graph/graph-card-connection';
describe('graph card connection geometry', () => {
it('connects the node ring to the nearest card edge', () => {
expect(graphCardConnection(
{ x: 0, y: 0, radius: 10 },
{ x: 30, y: -20, width: 80, height: 40 }
)).toEqual({ startX: 15, startY: 0, endX: 30, endY: 0 });
});
it('keeps a visible connector when a manually placed card overlaps the node', () => {
const connection = graphCardConnection(
{ x: 10, y: 10, radius: 4 },
{ x: 0, y: 0, width: 40, height: 30 }
);
expect(connection.endX === 0 || connection.endX === 40 || connection.endY === 0 || connection.endY === 30).toBe(true);
expect(Math.hypot(connection.endX - connection.startX, connection.endY - connection.startY)).toBeGreaterThan(0);
});
});