1 | var Nanocomponent = require('../')
|
2 | var test = require('tape')
|
3 | var html = require('bel')
|
4 |
|
5 | test('cache', (t) => {
|
6 | t.test('should validate input types', (t) => {
|
7 | t.plan(1)
|
8 | var comp = new Nanocomponent()
|
9 | t.throws(comp.render.bind(comp), /createElement should be implemented/)
|
10 | })
|
11 |
|
12 | t.test('should render elements', (t) => {
|
13 | t.plan(2)
|
14 |
|
15 | function MyComp () {
|
16 | if (!(this instanceof MyComp)) return new MyComp()
|
17 | Nanocomponent.call(this)
|
18 | }
|
19 | MyComp.prototype = Object.create(Nanocomponent.prototype)
|
20 |
|
21 | MyComp.prototype.createElement = function (name) {
|
22 | return html`<div>${name}</div>`
|
23 | }
|
24 |
|
25 | MyComp.prototype.update = function (name) {
|
26 | return false
|
27 | }
|
28 |
|
29 | var myComp = new MyComp()
|
30 |
|
31 | var el1 = myComp.render('mittens')
|
32 | t.equal(String(el1), '<div>mittens</div>', 'init render success')
|
33 |
|
34 | var el3 = myComp.render('scruffles')
|
35 | t.equal(String(el3), '<div>scruffles</div>', 're-render success')
|
36 | })
|
37 | })
|