Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | 1x 1x 1x 1x 1x 1x 1x 1x | import { assert } from 'chai'; // @ts-ignore import { Machine } from '../src/index'; // @ts-ignore import { StateValue } from '../src/types'; describe('strict mode', () => { const pedestrianStates = { initial: 'walk', states: { walk: { on: { PED_COUNTDOWN: 'wait' }, onEntry: 'enter_walk', onExit: 'exit_walk' }, wait: { on: { PED_COUNTDOWN: 'stop' }, onEntry: 'enter_wait', onExit: 'exit_wait' }, stop: { onEntry: 'enter_stop', onExit: 'exit_stop' } } }; const lightMachine = Machine({ key: 'light', initial: 'green', states: { green: { on: { TIMER: 'yellow', POWER_OUTAGE: 'red', NOTHING: 'green' }, onEntry: 'enter_green', onExit: 'exit_green' }, yellow: { on: { TIMER: 'red', POWER_OUTAGE: 'red' }, onEntry: 'enter_yellow', onExit: 'exit_yellow' }, red: { on: { TIMER: 'green', POWER_OUTAGE: 'red', NOTHING: 'red' }, onEntry: 'enter_red', onExit: 'exit_red', ...pedestrianStates } }, strict: true }); // @ts-ignore const parallelMachine = Machine({ parallel: true, states: { a: { initial: 'a1', states: { a1: { on: { CHANGE: 'a2' }, onEntry: 'enter_a1', onExit: 'exit_a1' }, a2: { onEntry: 'enter_a2', onExit: 'exit_a2' } }, onEntry: 'enter_a', onExit: 'exit_a' }, b: { initial: 'b1', states: { b1: { on: { CHANGE: 'b2' }, onEntry: 'enter_b1', onExit: 'exit_b1' }, b2: { onEntry: 'enter_b2', onExit: 'exit_b2' } }, onEntry: 'enter_b', onExit: 'exit_b' } }, strict: true }); it('should throw for unacceptable events', () => { assert.throws(() => lightMachine.transition('green', 'FOO')); }); }); |