All files / xstate/test/fixtures omni.ts

0% Statements 0/6
100% Branches 0/0
0% Functions 0/5
0% Lines 0/6

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 106 107 108 109 110                                                                                                                                                                                                                           
import { Machine } from '../../src';
 
const omniMachine = Machine({
  id: 'omni',
  initial: 'compound',
  context: {
    count: 0
  },
  states: {
    compound: {
      type: 'compound',
      initial: 'deep',
      states: {
        deep: {
          type: 'compound',
          initial: 'first',
          states: {
            first: {
              type: 'compound',
              initial: 'one',
              states: {
                one: {},
                two: {},
                three: {
                  type: 'final'
                }
              }
            },
            second: {
              type: 'final'
            },
            shallowHist: {
              type: 'history',
              history: 'shallow'
            },
            deepHist: {
              type: 'history',
              history: 'deep'
            }
          }
        }
      }
    },
    parallel: {
      type: 'parallel',
      states: {
        left: {
          type: 'compound',
          states: {
            one: {},
            two: {},
            three: { type: 'final' }
          }
        },
        middle: {
          type: 'compound',
          states: {
            one: {
              after: {
                1000: 'two'
              }
            },
            two: {
              after: {
                2000: [
                  { target: 'three', cond: ctx => ctx.count === 3 },
                  { target: 'four', cond: ctx => ctx.count === 4 },
                  { target: 'one' }
                ]
              }
            },
            three: {
              after: {
                1000: [{ target: 'one', cond: ctx => ctx.count === -1 }],
                2000: 'four'
              }
            },
            four: { type: 'final' }
          }
        },
        right: {
          type: 'compound',
          states: {
            transient: {
              on: {
                '': 'one'
              }
            },
            transientCond: {
              on: {
                '': [
                  { target: 'two', cond: ctx => ctx.count === 2 },
                  { target: 'three', cond: ctx => ctx.count === 3 },
                  { target: 'one' }
                ]
              }
            },
            one: {},
            two: {},
            three: {},
            four: { type: 'final' }
          }
        }
      }
    }
  }
});
 
export { omniMachine };