import assert from 'assert' import ObservableStore from 'obs-store' import ComposableObservableStore from '../../../app/scripts/lib/ComposableObservableStore' describe('ComposableObservableStore', function () { it('should register initial state', function () { const store = new ComposableObservableStore('state') assert.strictEqual(store.getState(), 'state') }) it('should register initial structure', function () { const testStore = new ObservableStore() const store = new ComposableObservableStore(null, { TestStore: testStore }) testStore.putState('state') assert.deepEqual(store.getState(), { TestStore: 'state' }) }) it('should update structure', function () { 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', function () { 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' }) }) })