UNPKG

node-state-machine

Version:
80 lines (66 loc) 2.86 kB
import chai from 'chai'; import { Transition } from '../dist/model/Transition'; let expect = chai.expect; describe('Transition Tests', () => { it('should have correct checker', () => { let transition = new Transition(v => v == 'a', 'A'); expect(transition.fires('a')).to.equal(true); expect(transition.fires('b')).to.equal(false); expect(transition.fires('')).to.equal(false); expect(transition.fires(false)).to.equal(false); expect(transition.fires(5)).to.equal(false); }); it('should have correct destination', () => { let transition = new Transition(v => v == 'a', 'A'); expect(transition.destination()).to.equal('A'); }); it('should have correct amount of middlewares', () => { let transition = new Transition(v => v == 'a', 'A', [ v => { console.log(v); }, v => { console.log('middleware'); }, ]); expect(transition.hasMiddlewares()).to.equal(true); expect(transition.middlewares().length).to.equal(2); }); it('should have no implicit middlewares', () => { let transition = new Transition(v => v == 'a', 'A'); expect(transition.hasMiddlewares()).to.equal(false); expect(transition.middlewares().length).to.equal(0); }); it('should have no explicit middlewares', () => { let transition = new Transition(v => v == 'a', 'A', []); expect(transition.hasMiddlewares()).to.equal(false); expect(transition.middlewares().length).to.equal(0); }); it('should work with int destinations', () => { let transition = new Transition(v => v == 'a', 5); expect(transition.destination()).to.equal(5); expect(transition.destination()).to.not.equal('5'); }); it('should work with double destinations', () => { let transition = new Transition(v => v == 'a', 5.5); expect(transition.destination()).to.equal(5.5); expect(transition.destination()).to.not.equal('5.5'); }); it('should work with boolean destinations', () => { let transition = new Transition(v => v == 'a', true); expect(transition.destination()).to.equal(true); expect(transition.destination()).to.not.equal(false); }); it('should work with int checker', () => { let transition = new Transition(v => v == 5, 5); expect(transition.fires('a')).to.equal(false); expect(transition.fires('b')).to.equal(false); expect(transition.fires('')).to.equal(false); expect(transition.fires(false)).to.equal(false); expect(transition.fires(5)).to.equal(true); }); it('should work with boolean checker', () => { let transition = new Transition(v => v == true, true); expect(transition.fires('a')).to.equal(false); expect(transition.fires('b')).to.equal(false); expect(transition.fires('')).to.equal(false); expect(transition.fires(5)).to.equal(false); expect(transition.fires(true)).to.equal(true); }); });