marko-widgets
Version:
Module to support binding of behavior to rendered UI components rendered on the server or client
52 lines (42 loc) • 1.29 kB
JavaScript
var expect = require('chai').expect;
module.exports = function(helpers) {
var widget = helpers.mount(require('./index'), {
name: 'Frank',
messageCount: 10
});
var targetEl = helpers.targetEl;
expect(targetEl.innerHTML).to.contain('Hello Frank! You have 10 new messages.');
expect(widget.lifecycleEvents).to.deep.equal([
'init',
'onRender:firstRender'
]);
require('marko-widgets').batchUpdate(function() {
widget.setProps({
name: 'Jane',
messageCount: 30
});
expect(targetEl.innerHTML).to.contain('Hello Frank! You have 10 new messages.');
expect(widget.lifecycleEvents).to.deep.equal([
'init',
'onRender:firstRender'
]);
});
expect(targetEl.innerHTML).to.contain('Hello Jane! You have 30 new messages.');
expect(widget.lifecycleEvents).to.deep.equal([
'init',
'onRender:firstRender',
'onBeforeUpdate',
'onUpdate',
'onRender'
]);
widget.destroy();
expect(widget.lifecycleEvents).to.deep.equal([
'init',
'onRender:firstRender',
'onBeforeUpdate',
'onUpdate',
'onRender',
'onBeforeDestroy',
'onDestroy'
]);
};