123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- import SnapContext from 'lib/features/snapping/SnapContext';
- describe('snapping - SnapContext', function() {
- it('should add snap origins', function() {
- // given
- var context = new SnapContext();
- var topLeftOrigin = { x: 0, y: 50 },
- bottomRightOrigin = { x: 50, y: 100 };
- // when
- context.setSnapOrigin('top-left', topLeftOrigin);
- context.setSnapOrigin('bottom-right', bottomRightOrigin);
- // then
- expect(context.getSnapOrigin('top-left')).to.eql(topLeftOrigin);
- expect(context.getSnapOrigin('bottom-right')).to.eql(bottomRightOrigin);
- // snap locations are determined by origin add order
- expect(context.getSnapLocations()).to.eql([ 'top-left', 'bottom-right' ]);
- });
- it('should override snap locations', function() {
- // given
- var context = new SnapContext();
- context.setSnapOrigin('top-left', { x: 0, y: 50 });
- context.setSnapOrigin('bottom-right', { x: 50, y: 100 });
- // when
- context.setSnapLocations([ 'bottom-right', 'top-left' ]);
- // then
- // snap are overridden by custom order
- expect(context.getSnapLocations()).to.eql([ 'bottom-right', 'top-left' ]);
- });
- describe('snap points', function() {
- it('should provide per target snap points', function() {
- // given
- var context = new SnapContext();
- context.setSnapOrigin('mid', { x: 0, y: 50 });
- // when
- var snapPointsFoo = context.pointsForTarget('Foo'),
- snapPointsBar = context.pointsForTarget({ id: 'Bar' });
- // then
- expect(snapPointsFoo).to.exist;
- expect(snapPointsBar).to.exist;
- });
- it('should not snap', function() {
- // given
- var context = new SnapContext();
- context.setSnapOrigin('mid', { x: 0, y: 50 });
- // when
- var snapPoints = context.pointsForTarget('Foo');
- // then
- expect(snapPoints.snap({ x: 10, y: 10 }, 'mid', 'x')).not.to.exist;
- expect(snapPoints.snap({ x: 10, y: 10 }, 'mid', 'y')).not.to.exist;
- });
- it('should snap', function() {
- // given
- var context = new SnapContext();
- context.setSnapOrigin('mid', { x: 0, y: 50 });
- var snapPoints = context.pointsForTarget('Foo');
- // when
- snapPoints.add('mid', { x: 15, y: 50 });
- // then
- expect(snapPoints.snap({ x: 10, y: 10 }, 'mid', 'x')).to.eql(15);
- expect(snapPoints.snap({ x: 10, y: 10 }, 'mid', 'y')).not.to.exist;
- });
- it('should snap default point', function() {
- // given
- var context = new SnapContext();
- context.setSnapOrigin('mid', { x: 0, y: 50 });
- context.addDefaultSnap('mid', { x: 15, y: 50 });
- // when
- var snapPoints = context.pointsForTarget('Foo');
- // then
- expect(snapPoints.snap({ x: 10, y: 10 }, 'mid', 'x')).to.eql(15);
- expect(snapPoints.snap({ x: 10, y: 10 }, 'mid', 'y')).not.to.exist;
- });
- });
- });
|