const assert = require('assert')
const hv = require('..')
assert.strictEqual(hv(`
Show Me!
`),
`h('div', null, (function () {
if (state.bar === 1) {
return h('span', null, 'Show Me!')
}
}.call(this)))
`)
assert.strictEqual(hv(`
Show Me!
`),
`h('div', null, state.bar === 1 ? h('span', null, 'Show Me!') : undefined)
`)
assert.strictEqual(hv(`
odd
even
`),
`h('div', null, (function () {
if (state.bar % 2) {
return h('span', null, 'odd')
} else {
return h('span', null, 'even')
}
}.call(this)))
`)
assert.strictEqual(hv(`
1
2
`),
`h('div', null, (function () {
if (state.bar === 1) {
return h('span', null, '1')
} else if (state.bar === 2) {
return h('span', null, '2')
}
}.call(this)))
`)
assert.strictEqual(hv(`
1
2
bar is neither 1 or 2, it's {state.bar}!
`),
`h('div', null, (function () {
if (state.bar === 1) {
return h('span', null, '1')
} else if (state.bar === 2) {
return h('span', null, '2')
} else {
return h('span', null, "bar is neither 1 or 2, it's " + (state.bar) + '!')
}
}.call(this)))
`)
assert.strictEqual(hv(`
foo1
bar1
bar2
foo2
foo3
Default
`),
`h('section', null, (function () {
if (state.foo === 1) {
return [
h('span', null, 'foo1'),
(function () {
if (state.bar === 1) {
return h('span', null, 'bar1')
} else {
return h('span', null, 'bar2')
}
}.call(this))
]
} else if (state.foo === 2) {
return h('span', null, 'foo2')
} else if (state.foo === 3) {
return h('span', null, 'foo3')
} else {
return 'Default'
}
}.call(this)))
`)