deno.land / x / xstate@xstate@4.33.6 / test / strict.test.ts

strict.test.ts
نووسراو ببینە
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
import { Machine } from '../src/index';
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: { type: 'final' as const, onEntry: 'enter_stop', onExit: 'exit_stop' } } };
const lightMachine = Machine({ strict: true, 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 } } });
it('should throw for unacceptable events', () => { expect(() => { lightMachine.transition('green', 'FOO'); }).toThrow(); });
it('should not throw for built-in events', () => { expect(() => { lightMachine.transition('red.wait', 'PED_COUNTDOWN'); }).not.toThrow(); });});
xstate

Version Info

Tagged at
2 years ago