test('should work', t => { let node const {render} = vdux({ middleware: [ flo(), fixture({ '/test': { GET: () => responses.ok('some test string') } }) ] }) const App = summon(props => ({ test: '/test' }), { render: ({props}) => { return <div>{props.test.loading ? 'loading' : props.test.value}</div> } }) node = render(<App/>) t.ok(node.innerText.indexOf('loading') !== -1, 'loading state') setTimeout(() => { node = render(<App/>) t.ok(node.innerText.indexOf('some test string') !== -1, 'data loaded') t.end() }) })
test('should support invalidation', t => { let node const {render, dispatch} = vdux({ middleware: [ flo(), middleware, fixture({ '/test': { GET: () => { responses.ok('some test string') t.pass() } } }) ] }) const App = summon(props => ({ test: '/test' }), { render: ({props}) => { return <div>{props.test.loading ? 'loading' : props.test.value}</div> } }) node = render(<App/>) t.plan(2) setTimeout(() => { node = render(<App/>) dispatch(invalidate('/test')) setTimeout(() => { render(<span/>) dispatch(invalidate('/test')) setTimeout(() => t.end()) }) }) })
const config = { apiKey: 'AIzaSyA1Ib5i5HZPCxnKp4ITiUoy5VEKaLMdsDY', authDomain: 'play-ev3.firebaseapp.com', databaseURL: 'https://play-ev3.firebaseio.com', storageBucket: 'play-ev3.appspot.com' } /** * App */ const {subscribe, render, replaceReducer} = vdux({ reducer, initialState, middleware: [ flow(), effects, timeout(), fire.middleware(config), auth, deviceGame, location(), timer(), audio ] }) domready(() => { subscribe((state) => { render(app(state), {uiTheme: theme}) })
function createDispatch () { return bind([flo(), forkEffect]) }