UNPKG

@antv/x6

Version:

JavaScript diagramming library that uses SVG and HTML for rendering.

71 lines 4.25 kB
import { Rectangle, Ellipse, Polyline, Path } from '../../geometry'; import { Vector } from '../vector'; import { setupTest, clearnTest } from './elem.test'; import { getBBox } from './geom'; describe('Dom', () => { describe('geom', () => { const { svgContainer, svgGroup, svgGroup1, svgCircle, svgLinearGradient, svgEllipse, svgPolygon, svgRectangle, svgPath, foreignDiv, } = setupTest(); afterEach(clearnTest); describe('#bbox', () => { it('should return a rectangle instance', () => { expect(Vector.create('circle').bbox()).toBeInstanceOf(Rectangle); expect(Vector.create(svgCircle).bbox()).toBeInstanceOf(Rectangle); expect(Vector.create(svgCircle).bbox(true)).toBeInstanceOf(Rectangle); expect(Vector.create(svgCircle).bbox(true, svgGroup1)).toBeInstanceOf(Rectangle); expect(Vector.create(svgLinearGradient).bbox()).toBeInstanceOf(Rectangle); }); }); describe('#getBBox', () => { it('should return a rectangle instance', () => { expect(Vector.create('circle').getBBox()).toBeInstanceOf(Rectangle); expect(Vector.create(svgCircle).getBBox()).toBeInstanceOf(Rectangle); expect(Vector.create(svgCircle).getBBox({})).toBeInstanceOf(Rectangle); expect(Vector.create(svgLinearGradient).getBBox()).toBeInstanceOf(Rectangle); expect(Vector.create(svgCircle).getBBox({ recursive: true })).toBeInstanceOf(Rectangle); expect(Vector.create(svgGroup).getBBox({ recursive: true })).toBeInstanceOf(Rectangle); expect(Vector.create(svgGroup).getBBox({ target: svgContainer })).toBeInstanceOf(Rectangle); expect(Vector.create(svgGroup).getBBox({ target: svgCircle })).toBeInstanceOf(Rectangle); expect(Vector.create(svgGroup1).getBBox({ recursive: true })).toBeInstanceOf(Rectangle); expect(Vector.create(svgGroup1).getBBox({ target: svgContainer })).toBeInstanceOf(Rectangle); expect(Vector.create(svgGroup1).getBBox({ target: svgCircle })).toBeInstanceOf(Rectangle); expect(Vector.create(svgLinearGradient).getBBox({ recursive: true })).toBeInstanceOf(Rectangle); expect(Vector.create(svgLinearGradient).getBBox({ target: svgContainer, })).toBeInstanceOf(Rectangle); expect(Vector.create(svgLinearGradient).getBBox({ target: svgCircle })).toBeInstanceOf(Rectangle); expect(getBBox(foreignDiv)).toBeInstanceOf(Rectangle); }); }); describe('#toLocalPoint', () => { it('convert absolute coordinates to coordinates relative to svgContainer', () => { const { x, y } = svgContainer.getBoundingClientRect(); const { x: localX, y: localY } = Vector.create(svgContainer).toLocalPoint(x, y); expect(localX).toBe(0); expect(localY).toBe(0); }); }); describe('#toGeometryShape', () => { it('convert the SVGElement to an equivalent geometric shap', () => { expect(Vector.create(svgEllipse).toGeometryShape()).toBeInstanceOf(Ellipse); expect(Vector.create(svgCircle).toGeometryShape()).toBeInstanceOf(Ellipse); expect(Vector.create(svgPolygon).toGeometryShape()).toBeInstanceOf(Polyline); expect(Vector.create(svgRectangle).toGeometryShape()).toBeInstanceOf(Rectangle); expect(Vector.create(svgPath).toGeometryShape()).toBeInstanceOf(Path); expect(Vector.create(svgGroup).toGeometryShape()).toBeInstanceOf(Rectangle); }); }); describe('#animateAlongPath', () => { it('should not throw error', () => { let result = true; try { Vector.create(svgEllipse).animateAlongPath({}, svgPath); } catch (e) { result = false; } expect(result).toBeTruthy(); }); }); }); }); //# sourceMappingURL=geom.test.js.map