UNPKG

node-state-machine

Version:
48 lines (41 loc) 1.73 kB
import chai from 'chai'; import { Transition } from '../dist/model/Transition'; import { Transitions } from '../dist/model/Transitions'; let expect = chai.expect; describe('Transitions Tests', () => { it('should have no transitions', () => { let transitions = new Transitions(); expect(transitions.totalTransitions()).to.equal(0); }); it('should have multiple transitions', () => { let t1 = new Transition(v => v == 'a', 'A'); let t2 = new Transition(v => v == 'b', 'B'); let t3 = new Transition(v => v == 'b', 'C'); let transitions = new Transitions(); expect(transitions.totalTransitions()).to.equal(0); transitions.add(t1); transitions.add(t2); transitions.add(t3); expect(transitions.totalTransitions()).to.equal(3); transitions.default('D'); expect(transitions.totalTransitions()).to.equal(4); expect(() => { transitions.find('b'); }).to.throw('Multiple transitions found!'); }); it('should have return correct destination', () => { let t1 = new Transition(v => v == 'a', 'A'); let t2 = new Transition(v => v == 'b', 'B'); let t3 = new Transition(v => v == 'c', 'C'); let transitions = new Transitions(); expect(transitions.totalTransitions()).to.equal(0); transitions.add(t1); transitions.add(t2); transitions.add(t3); expect(transitions.totalTransitions()).to.equal(3); transitions.default('D'); expect(transitions.totalTransitions()).to.equal(4); expect(transitions.find('a').destination()).to.equal('A'); expect(transitions.find('b').destination()).to.equal('B'); expect(transitions.find('c').destination()).to.equal('C'); expect(transitions.find('d').destination()).to.equal('D'); }); });