aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit/ComposableObservableStore.js
blob: 3fba200c17c3203810ed657dc9b92721582450d1 (plain) (blame)
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
const assert = require('assert')
const ComposableObservableStore = require('../../app/scripts/lib/ComposableObservableStore')
const ObservableStore = require('obs-store')

describe('ComposableObservableStore', () => {
  it('should register initial state', () => {
    const store = new ComposableObservableStore('state')
    assert.strictEqual(store.getState(), 'state')
  })

  it('should register initial structure', () => {
    const testStore = new ObservableStore()
    const store = new ComposableObservableStore(null, { TestStore: testStore })
    testStore.putState('state')
    assert.deepEqual(store.getState(), { TestStore: 'state' })
  })

  it('should update structure', () => {
    const testStore = new ObservableStore()
    const store = new ComposableObservableStore()
    store.updateStructure({ TestStore: testStore })
    testStore.putState('state')
    assert.deepEqual(store.getState(), { TestStore: 'state' })
  })

  it('should return flattened state', () => {
    const fooStore = new ObservableStore({ foo: 'foo' })
    const barStore = new ObservableStore({ bar: 'bar' })
    const store = new ComposableObservableStore(null, {
      FooStore: fooStore,
      BarStore: barStore,
    })
    assert.deepEqual(store.getFlatState(), { foo: 'foo', bar: 'bar' })
  })
})