|
|
@ -136,6 +136,17 @@ describe('snabbdom', function() {
|
|
|
|
done();
|
|
|
|
done();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('is a patch of the root element', function () {
|
|
|
|
|
|
|
|
var elmWithIdAndClass = document.createElement('div');
|
|
|
|
|
|
|
|
elmWithIdAndClass.id = 'id';
|
|
|
|
|
|
|
|
elmWithIdAndClass.className = 'class';
|
|
|
|
|
|
|
|
var vnode1 = h('div#id.class', [h('span', 'Hi')]);
|
|
|
|
|
|
|
|
elm = patch(elmWithIdAndClass, vnode1).elm;
|
|
|
|
|
|
|
|
assert.strictEqual(elm, elmWithIdAndClass);
|
|
|
|
|
|
|
|
assert.equal(elm.tagName, 'DIV');
|
|
|
|
|
|
|
|
assert.equal(elm.id, 'id');
|
|
|
|
|
|
|
|
assert.equal(elm.className, 'class');
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
describe('pathing an element', function() {
|
|
|
|
describe('pathing an element', function() {
|
|
|
|
it('changes the elements classes', function() {
|
|
|
|
it('changes the elements classes', function() {
|
|
|
@ -670,7 +681,7 @@ describe('snabbdom', function() {
|
|
|
|
{remove: function(_, rm) { rm2 = rm; }},
|
|
|
|
{remove: function(_, rm) { rm2 = rm; }},
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
var vnode1 = h('div', [h('a', {hook: {remove: function(_, rm) { rm3 = rm; }}})]);
|
|
|
|
var vnode1 = h('div', [h('a', {hook: {remove: function(_, rm) { rm3 = rm; }}})]);
|
|
|
|
var vnode2 = h('div', []);
|
|
|
|
var vnode2 = h('div', []);
|
|
|
|
elm = patch(vnode0, vnode1).elm;
|
|
|
|
elm = patch(vnode0, vnode1).elm;
|
|
|
|
assert.equal(elm.children.length, 1);
|
|
|
|
assert.equal(elm.children.length, 1);
|
|
|
|
elm = patch(vnode1, vnode2).elm;
|
|
|
|
elm = patch(vnode1, vnode2).elm;
|
|
|
@ -686,7 +697,7 @@ describe('snabbdom', function() {
|
|
|
|
var result = [];
|
|
|
|
var result = [];
|
|
|
|
var parent = document.createElement('div');
|
|
|
|
var parent = document.createElement('div');
|
|
|
|
var vnode0 = document.createElement('div');
|
|
|
|
var vnode0 = document.createElement('div');
|
|
|
|
parent.appendChild(vnode0);
|
|
|
|
parent.appendChild(vnode0);
|
|
|
|
function cb(vnode, rm) {
|
|
|
|
function cb(vnode, rm) {
|
|
|
|
result.push(vnode);
|
|
|
|
result.push(vnode);
|
|
|
|
rm();
|
|
|
|
rm();
|
|
|
@ -725,7 +736,7 @@ describe('snabbdom', function() {
|
|
|
|
h('span', 'Child 2'),
|
|
|
|
h('span', 'Child 2'),
|
|
|
|
]),
|
|
|
|
]),
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
var vnode2 = h('div');
|
|
|
|
var vnode2 = h('div');
|
|
|
|
patch(vnode0, vnode1);
|
|
|
|
patch(vnode0, vnode1);
|
|
|
|
patch(vnode1, vnode2);
|
|
|
|
patch(vnode1, vnode2);
|
|
|
|
assert.equal(result.length, 1);
|
|
|
|
assert.equal(result.length, 1);
|
|
|
@ -752,7 +763,7 @@ describe('snabbdom', function() {
|
|
|
|
h('span', 'Child 2'),
|
|
|
|
h('span', 'Child 2'),
|
|
|
|
]),
|
|
|
|
]),
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
var vnode2 = h('div');
|
|
|
|
var vnode2 = h('div');
|
|
|
|
patch(vnode0, vnode1);
|
|
|
|
patch(vnode0, vnode1);
|
|
|
|
patch(vnode1, vnode2);
|
|
|
|
patch(vnode1, vnode2);
|
|
|
|
assert.equal(created, 4);
|
|
|
|
assert.equal(created, 4);
|
|
|
@ -770,7 +781,7 @@ describe('snabbdom', function() {
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
h('span', 'Third child'),
|
|
|
|
h('span', 'Third child'),
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
var vnode2 = h('div');
|
|
|
|
var vnode2 = h('div');
|
|
|
|
patch(vnode0, vnode1);
|
|
|
|
patch(vnode0, vnode1);
|
|
|
|
patch(vnode1, vnode2);
|
|
|
|
patch(vnode1, vnode2);
|
|
|
|
assert.equal(created, 2);
|
|
|
|
assert.equal(created, 2);
|
|
|
@ -790,7 +801,7 @@ describe('snabbdom', function() {
|
|
|
|
h('span', ['Text 1', 'Text 2']),
|
|
|
|
h('span', ['Text 1', 'Text 2']),
|
|
|
|
]),
|
|
|
|
]),
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
var vnode2 = h('div');
|
|
|
|
var vnode2 = h('div');
|
|
|
|
patch(vnode0, vnode1);
|
|
|
|
patch(vnode0, vnode1);
|
|
|
|
patch(vnode1, vnode2);
|
|
|
|
patch(vnode1, vnode2);
|
|
|
|
assert.equal(created, 4);
|
|
|
|
assert.equal(created, 4);
|
|
|
|