choo-shortcache
Version:
choo nanocomponent cache shortcut
38 lines (29 loc) • 972 B
JavaScript
var Nanocomponent = require('../')
var test = require('tape')
var html = require('nanohtml')
test('cache', (t) => {
t.test('should validate input types', (t) => {
t.plan(1)
var comp = new Nanocomponent()
t.throws(comp.render.bind(comp), /createElement should be implemented/)
})
t.test('should render elements', (t) => {
t.plan(2)
function MyComp () {
if (!(this instanceof MyComp)) return new MyComp()
Nanocomponent.call(this)
}
MyComp.prototype = Object.create(Nanocomponent.prototype)
MyComp.prototype.createElement = function (name) {
return html`<div>${name}</div>`
}
MyComp.prototype.update = function (name) {
return false
}
var myComp = new MyComp()
var el1 = myComp.render('mittens')
t.equal(String(el1), '<div>mittens</div>', 'init render success')
var el3 = myComp.render('scruffles')
t.equal(String(el3), '<div>scruffles</div>', 're-render success')
})
})