diff --git a/tests/browser/routing.js b/tests/browser/routing.js index 168fcdf..23b5806 100644 --- a/tests/browser/routing.js +++ b/tests/browser/routing.js @@ -57,4 +57,56 @@ test('routing', function (t) { return view`
${state.user}
` } }) + + t.test('hash', function (t) { + t.plan(1) + + const hash = Event() + const choo = proxyquire('../..', { + 'sheet-router/hash': hash.listen + }) + + const app = choo() + + app.model({ + state: { + user: null + }, + reducers: { + set: (action, state) => ({user: action.id}) + }, + effects: { + open: function (action, state, send, done) { + send('set', {id: 1}, function (err) { + if (err) return done(err) + hash.broadcast('#users/1') + }) + } + } + }) + + app.router('/users', (route) => [ + route('/users', parentView, [ + route('/:user', childView) + ]) + ]) + + const tree = app.start({hash: true}) + document.body.appendChild(tree) + + tree.onclick() + + function parentView (state, prev, send) { + return view` + + ` + } + + function childView (state, prev, send) { + t.equal(state.user, 1) + return view`
${state.user}
` + } + }) })