Add tests and fixes for rehydration

* Barracks must get an initial state or state.location is undefined
* Replaces document.addEventListener w/ pkg handling existing ready doc
This commit is contained in:
Ben Drucker
2016-07-04 16:19:12 -07:00
parent e2f0c5429c
commit e0783320f7
3 changed files with 32 additions and 2 deletions
+28
View File
@@ -0,0 +1,28 @@
const test = require('tape')
const onReady = require('document-ready')
const choo = require('../../')
const view = require('../../html')
test('rehydration', function (t) {
t.plan(2)
const app = choo()
app.router((route) => [
route('/', function (state, prev, send) {
return view`<div id="app-root" onclick=${() => send('test')}>Hello world!</span>`
})
])
var node = document.createElement('div')
node.innerHTML = app.toString('/')
node = node.childNodes[0]
document.body.appendChild(node)
app.start('#app-root')
onReady(function () {
t.equal(node.innerHTML, 'Hello world!', 'same content')
t.equal(typeof node.onclick, 'function', 'attaches dom listeners')
})
})