@ -5,11 +5,11 @@ import { h } from '../../package/h'
import { thunk } from '../../package/thunk'
import { VNode } from '../../package/vnode'
var patch = init ( [
const patch = init ( [
] )
describe ( 'thunk' , function ( ) {
var elm : any , vnode0 : any
let elm : any , vnode0 : any
beforeEach ( function ( ) {
elm = vnode0 = document . createElement ( 'div' )
} )
@ -17,21 +17,21 @@ describe('thunk', function () {
function numberInSpan ( n : number ) {
return h ( 'span' , 'Number is ' + n )
}
var vnode = thunk ( 'span' , 'num' , numberInSpan , [ 22 ] )
const vnode = thunk ( 'span' , 'num' , numberInSpan , [ 22 ] )
assert . deepEqual ( vnode . sel , 'span' )
assert . deepEqual ( vnode . data . key , 'num' )
assert . deepEqual ( vnode . data . args , [ 22 ] )
} )
it ( 'calls render function once on data change' , function ( ) {
var called = 0
let called = 0
function numberInSpan ( n : number ) {
called ++
return h ( 'span' , { key : 'num' } , 'Number is ' + n )
}
var vnode1 = h ( 'div' , [
const vnode1 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
] )
var vnode2 = h ( 'div' , [
const vnode2 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan , [ 2 ] )
] )
patch ( vnode0 , vnode1 )
@ -40,15 +40,15 @@ describe('thunk', function () {
assert . strictEqual ( called , 2 )
} )
it ( 'does not call render function on data unchanged' , function ( ) {
var called = 0
let called = 0
function numberInSpan ( n : number ) {
called ++
return h ( 'span' , { key : 'num' } , 'Number is ' + n )
}
var vnode1 = h ( 'div' , [
const vnode1 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
] )
var vnode2 = h ( 'div' , [
const vnode2 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
] )
patch ( vnode0 , vnode1 )
@ -57,15 +57,15 @@ describe('thunk', function () {
assert . strictEqual ( called , 1 )
} )
it ( 'calls render function once on data-length change' , function ( ) {
var called = 0
let called = 0
function numberInSpan ( n : number ) {
called ++
return h ( 'span' , { key : 'num' } , 'Number is ' + n )
}
var vnode1 = h ( 'div' , [
const vnode1 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
] )
var vnode2 = h ( 'div' , [
const vnode2 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan , [ 1 , 2 ] )
] )
patch ( vnode0 , vnode1 )
@ -74,7 +74,7 @@ describe('thunk', function () {
assert . strictEqual ( called , 2 )
} )
it ( 'calls render function once on function change' , function ( ) {
var called = 0
let called = 0
function numberInSpan ( n : number ) {
called ++
return h ( 'span' , { key : 'num' } , 'Number is ' + n )
@ -83,10 +83,10 @@ describe('thunk', function () {
called ++
return h ( 'span' , { key : 'num' } , 'Number really is ' + n )
}
var vnode1 = h ( 'div' , [
const vnode1 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
] )
var vnode2 = h ( 'div' , [
const vnode2 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan2 , [ 1 ] )
] )
patch ( vnode0 , vnode1 )
@ -95,18 +95,18 @@ describe('thunk', function () {
assert . strictEqual ( called , 2 )
} )
it ( 'renders correctly' , function ( ) {
var called = 0
let called = 0
function numberInSpan ( n : number ) {
called ++
return h ( 'span' , { key : 'num' } , 'Number is ' + n )
}
var vnode1 = h ( 'div' , [
const vnode1 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
] )
var vnode2 = h ( 'div' , [
const vnode2 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
] )
var vnode3 = h ( 'div' , [
const vnode3 = h ( 'div' , [
thunk ( 'span' , 'num' , numberInSpan , [ 2 ] )
] )
elm = patch ( vnode0 , vnode1 ) . elm
@ -124,19 +124,19 @@ describe('thunk', function () {
function vnodeFn ( s : string ) {
return h ( 'span.number' , 'Hello ' + s )
}
var vnode1 = thunk ( 'span.number' , vnodeFn , [ 'World!' ] )
const vnode1 = thunk ( 'span.number' , vnodeFn , [ 'World!' ] )
elm = patch ( vnode0 , vnode1 ) . elm
assert . strictEqual ( elm . innerText , 'Hello World!' )
} )
it ( 'renders correctly when root' , function ( ) {
var called = 0
let called = 0
function numberInSpan ( n : number ) {
called ++
return h ( 'span' , { key : 'num' } , 'Number is ' + n )
}
var vnode1 = thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
var vnode2 = thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
var vnode3 = thunk ( 'span' , 'num' , numberInSpan , [ 2 ] )
const vnode1 = thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
const vnode2 = thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
const vnode3 = thunk ( 'span' , 'num' , numberInSpan , [ 2 ] )
elm = patch ( vnode0 , vnode1 ) . elm
assert . strictEqual ( elm . tagName . toLowerCase ( ) , 'span' )
@ -156,11 +156,11 @@ describe('thunk', function () {
return h ( 'span' , { key : 'num' } , 'Number is ' + n )
}
function oddEven ( n : number ) : VNode {
var prefix = ( n % 2 ) === 0 ? 'Even' : 'Odd'
const prefix = ( n % 2 ) === 0 ? 'Even' : 'Odd'
return h ( 'div' , { key : oddEven as any } , prefix + ': ' + n )
}
var vnode1 = h ( 'div' , [ thunk ( 'span' , 'num' , numberInSpan , [ 1 ] ) ] )
var vnode2 = h ( 'div' , [ thunk ( 'div' , 'oddEven' , oddEven , [ 4 ] ) ] )
const vnode1 = h ( 'div' , [ thunk ( 'span' , 'num' , numberInSpan , [ 1 ] ) ] )
const vnode2 = h ( 'div' , [ thunk ( 'div' , 'oddEven' , oddEven , [ 4 ] ) ] )
elm = patch ( vnode0 , vnode1 ) . elm
assert . strictEqual ( elm . firstChild . tagName . toLowerCase ( ) , 'span' )
@ -175,11 +175,11 @@ describe('thunk', function () {
return h ( 'span' , { key : 'num' } , 'Number is ' + n )
}
function oddEven ( n : number ) : VNode {
var prefix = ( n % 2 ) === 0 ? 'Even' : 'Odd'
const prefix = ( n % 2 ) === 0 ? 'Even' : 'Odd'
return h ( 'div' , { key : oddEven as any } , prefix + ': ' + n )
}
var vnode1 = thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
var vnode2 = thunk ( 'div' , 'oddEven' , oddEven , [ 4 ] )
const vnode1 = thunk ( 'span' , 'num' , numberInSpan , [ 1 ] )
const vnode2 = thunk ( 'div' , 'oddEven' , oddEven , [ 4 ] )
elm = patch ( vnode0 , vnode1 ) . elm
assert . strictEqual ( elm . tagName . toLowerCase ( ) , 'span' )
@ -190,19 +190,19 @@ describe('thunk', function () {
assert . strictEqual ( elm . innerHTML , 'Even: 4' )
} )
it ( 'invokes destroy hook on thunks' , function ( ) {
var called = 0
let called = 0
function destroyHook ( ) {
called ++
}
function numberInSpan ( n : number ) {
return h ( 'span' , { key : 'num' , hook : { destroy : destroyHook } } , 'Number is ' + n )
}
var vnode1 = h ( 'div' , [
const vnode1 = h ( 'div' , [
h ( 'div' , 'Foo' ) ,
thunk ( 'span' , 'num' , numberInSpan , [ 1 ] ) ,
h ( 'div' , 'Foo' )
] )
var vnode2 = h ( 'div' , [
const vnode2 = h ( 'div' , [
h ( 'div' , 'Foo' ) ,
h ( 'div' , 'Foo' )
] )
@ -211,19 +211,19 @@ describe('thunk', function () {
assert . strictEqual ( called , 1 )
} )
it ( 'invokes remove hook on thunks' , function ( ) {
var called = 0
let called = 0
function hook ( ) {
called ++
}
function numberInSpan ( n : number ) {
return h ( 'span' , { key : 'num' , hook : { remove : hook } } , 'Number is ' + n )
}
var vnode1 = h ( 'div' , [
const vnode1 = h ( 'div' , [
h ( 'div' , 'Foo' ) ,
thunk ( 'span' , 'num' , numberInSpan , [ 1 ] ) ,
h ( 'div' , 'Foo' )
] )
var vnode2 = h ( 'div' , [
const vnode2 = h ( 'div' , [
h ( 'div' , 'Foo' ) ,
h ( 'div' , 'Foo' )
] )