Home Manual Reference Source Test Repository

test/MotionService.test.js

const sinon = require('sinon');
const Point = Mep.require('misc/Point');
const Polygon = Mep.require('misc/Polygon');
const assert = require('assert');
const TunedPoint = Mep.require('strategy/TunedPoint');

describe('MotionServiceTest', () => {
    describe('#pathObstacleDetected', () => {
        let spy = sinon.spy();
        let point = new Point(150, 0);
        let polygon = (new Polygon()).makeSquareAroundPoint(point, 100);



        before((done) => {
                Mep.Motion.on('pathObstacleDetected', spy);
                Mep.Motion.go(new TunedPoint(200, 0));
                Mep.Motion._onObstacleDetected(point, polygon);
                done();
        });

        it('should fire an event `pathObstacleDetected`', (done) => {
            assert(spy.args[0][0] === true);
            done();
        });


        before((done) => {
            point = new Point(500, 0);
            polygon = new Polygon().makeSquareAroundPoint(point, 100);
            Mep.Motion._onObstacleDetected(point, polygon);
            return done();
        });

        it('should not fire an event', (done) => {
            assert(spy.args[1][0] === false);
            done();
        });
    });
});