From 396099f5b005517d8d97696ee418d1ac5ee0dd4a Mon Sep 17 00:00:00 2001 From: DefiantDog66 Date: Mon, 3 Dec 2018 17:55:54 +0000 Subject: [PATCH 1/2] Added exports#default AAdded exports#default, which adds support for things like "rollup-plugin-commonjs" which transpile commonJS modules into ES6 modules before transpilation, and other bundlers which do the same thing. It adds support for es6 modules, and it's only 7 letters, so it's worth it in the long run. --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index efb0599..1ffb521 100644 --- a/index.js +++ b/index.js @@ -4,7 +4,7 @@ var morph = require('./lib/morph') var TEXT_NODE = 3 // var DEBUG = false -module.exports = nanomorph +(module.exports = nanomorph).default = nanomorph; // Morph one tree into another tree // From 0785fc7e8be7634a597c8d96d2b8d68bfe2efa41 Mon Sep 17 00:00:00 2001 From: w0298i Date: Mon, 3 Dec 2018 18:08:33 +0000 Subject: [PATCH 2/2] Semistandard fix --- index.js | 84 +-- lib/events.js | 2 +- lib/morph.js | 122 ++-- test/diff.js | 616 ++++++++--------- test/events.js | 1752 ++++++++++++++++++++++++------------------------ test/fuzz.js | 78 +-- test/index.js | 28 +- 7 files changed, 1341 insertions(+), 1341 deletions(-) diff --git a/index.js b/index.js index 1ffb521..acae773 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ -var assert = require('assert') -var morph = require('./lib/morph') +var assert = require('assert').strict; +var morph = require('./lib/morph'); -var TEXT_NODE = 3 +var TEXT_NODE = 3; // var DEBUG = false (module.exports = nanomorph).default = nanomorph; @@ -27,11 +27,11 @@ function nanomorph (oldTree, newTree) { // newTree && newTree.outerHTML // ) // } - assert.equal(typeof oldTree, 'object', 'nanomorph: oldTree should be an object') - assert.equal(typeof newTree, 'object', 'nanomorph: newTree should be an object') - var tree = walk(newTree, oldTree) + assert.equal(typeof oldTree, 'object', 'nanomorph: oldTree should be an object'); + assert.equal(typeof newTree, 'object', 'nanomorph: newTree should be an object'); + var tree = walk(newTree, oldTree); // if (DEBUG) console.log('=> morphed\n %s', tree.outerHTML) - return tree + return tree; } // Walk and morph a dom tree @@ -44,17 +44,17 @@ function walk (newNode, oldNode) { // ) // } if (!oldNode) { - return newNode + return newNode; } else if (!newNode) { - return null + return null; } else if (newNode.isSameNode && newNode.isSameNode(oldNode)) { - return oldNode + return oldNode; } else if (newNode.tagName !== oldNode.tagName) { - return newNode + return newNode; } else { - morph(newNode, oldNode) - updateChildren(newNode, oldNode) - return oldNode + morph(newNode, oldNode); + updateChildren(newNode, oldNode); + return oldNode; } } @@ -68,14 +68,14 @@ function updateChildren (newNode, oldNode) { // newNode && newNode.outerHTML // ) // } - var oldChild, newChild, morphed, oldMatch + var oldChild, newChild, morphed, oldMatch; // The offset is only ever increased, and used for [i - offset] in the loop - var offset = 0 + var offset = 0; for (var i = 0; ; i++) { - oldChild = oldNode.childNodes[i] - newChild = newNode.childNodes[i - offset] + oldChild = oldNode.childNodes[i]; + newChild = newNode.childNodes[i - offset]; // if (DEBUG) { // console.log( // '===\n- old\n %s\n- new\n %s', @@ -85,65 +85,65 @@ function updateChildren (newNode, oldNode) { // } // Both nodes are empty, do nothing if (!oldChild && !newChild) { - break + break; // There is no new child, remove old } else if (!newChild) { - oldNode.removeChild(oldChild) - i-- + oldNode.removeChild(oldChild); + i--; // There is no old child, add new } else if (!oldChild) { - oldNode.appendChild(newChild) - offset++ + oldNode.appendChild(newChild); + offset++; // Both nodes are the same, morph } else if (same(newChild, oldChild)) { - morphed = walk(newChild, oldChild) + morphed = walk(newChild, oldChild); if (morphed !== oldChild) { - oldNode.replaceChild(morphed, oldChild) - offset++ + oldNode.replaceChild(morphed, oldChild); + offset++; } // Both nodes do not share an ID or a placeholder, try reorder } else { - oldMatch = null + oldMatch = null; // Try and find a similar node somewhere in the tree for (var j = i; j < oldNode.childNodes.length; j++) { if (same(oldNode.childNodes[j], newChild)) { - oldMatch = oldNode.childNodes[j] - break + oldMatch = oldNode.childNodes[j]; + break; } } // If there was a node with the same ID or placeholder in the old list if (oldMatch) { - morphed = walk(newChild, oldMatch) - if (morphed !== oldMatch) offset++ - oldNode.insertBefore(morphed, oldChild) + morphed = walk(newChild, oldMatch); + if (morphed !== oldMatch) offset++; + oldNode.insertBefore(morphed, oldChild); // It's safe to morph two nodes in-place if neither has an ID } else if (!newChild.id && !oldChild.id) { - morphed = walk(newChild, oldChild) + morphed = walk(newChild, oldChild); if (morphed !== oldChild) { - oldNode.replaceChild(morphed, oldChild) - offset++ + oldNode.replaceChild(morphed, oldChild); + offset++; } // Insert the node at the index if we couldn't morph or find a matching node } else { - oldNode.insertBefore(newChild, oldChild) - offset++ + oldNode.insertBefore(newChild, oldChild); + offset++; } } } } function same (a, b) { - if (a.id) return a.id === b.id - if (a.isSameNode) return a.isSameNode(b) - if (a.tagName !== b.tagName) return false - if (a.type === TEXT_NODE) return a.nodeValue === b.nodeValue - return false + if (a.id) return a.id === b.id; + if (a.isSameNode) return a.isSameNode(b); + if (a.tagName !== b.tagName) return false; + if (a.type === TEXT_NODE) return a.nodeValue === b.nodeValue; + return false; } diff --git a/lib/events.js b/lib/events.js index dea06fe..bbcff00 100644 --- a/lib/events.js +++ b/lib/events.js @@ -39,4 +39,4 @@ module.exports = [ 'oncontextmenu', 'onfocusin', 'onfocusout' -] +]; diff --git a/lib/morph.js b/lib/morph.js index ccc20cf..1d982c6 100644 --- a/lib/morph.js +++ b/lib/morph.js @@ -1,68 +1,68 @@ -var events = require('./events') -var eventsLength = events.length +var events = require('./events'); +var eventsLength = events.length; -var ELEMENT_NODE = 1 -var TEXT_NODE = 3 -var COMMENT_NODE = 8 +var ELEMENT_NODE = 1; +var TEXT_NODE = 3; +var COMMENT_NODE = 8; -module.exports = morph +module.exports = morph; // diff elements and apply the resulting patch to the old node // (obj, obj) -> null function morph (newNode, oldNode) { - var nodeType = newNode.nodeType - var nodeName = newNode.nodeName + var nodeType = newNode.nodeType; + var nodeName = newNode.nodeName; if (nodeType === ELEMENT_NODE) { - copyAttrs(newNode, oldNode) + copyAttrs(newNode, oldNode); } if (nodeType === TEXT_NODE || nodeType === COMMENT_NODE) { if (oldNode.nodeValue !== newNode.nodeValue) { - oldNode.nodeValue = newNode.nodeValue + oldNode.nodeValue = newNode.nodeValue; } } // Some DOM nodes are weird // https://github.com/patrick-steele-idem/morphdom/blob/master/src/specialElHandlers.js - if (nodeName === 'INPUT') updateInput(newNode, oldNode) - else if (nodeName === 'OPTION') updateOption(newNode, oldNode) - else if (nodeName === 'TEXTAREA') updateTextarea(newNode, oldNode) + if (nodeName === 'INPUT') updateInput(newNode, oldNode); + else if (nodeName === 'OPTION') updateOption(newNode, oldNode); + else if (nodeName === 'TEXTAREA') updateTextarea(newNode, oldNode); - copyEvents(newNode, oldNode) + copyEvents(newNode, oldNode); } function copyAttrs (newNode, oldNode) { - var oldAttrs = oldNode.attributes - var newAttrs = newNode.attributes - var attrNamespaceURI = null - var attrValue = null - var fromValue = null - var attrName = null - var attr = null + var oldAttrs = oldNode.attributes; + var newAttrs = newNode.attributes; + var attrNamespaceURI = null; + var attrValue = null; + var fromValue = null; + var attrName = null; + var attr = null; for (var i = newAttrs.length - 1; i >= 0; --i) { - attr = newAttrs[i] - attrName = attr.name - attrNamespaceURI = attr.namespaceURI - attrValue = attr.value + attr = newAttrs[i]; + attrName = attr.name; + attrNamespaceURI = attr.namespaceURI; + attrValue = attr.value; if (attrNamespaceURI) { - attrName = attr.localName || attrName - fromValue = oldNode.getAttributeNS(attrNamespaceURI, attrName) + attrName = attr.localName || attrName; + fromValue = oldNode.getAttributeNS(attrNamespaceURI, attrName); if (fromValue !== attrValue) { - oldNode.setAttributeNS(attrNamespaceURI, attrName, attrValue) + oldNode.setAttributeNS(attrNamespaceURI, attrName, attrValue); } } else { if (!oldNode.hasAttribute(attrName)) { - oldNode.setAttribute(attrName, attrValue) + oldNode.setAttribute(attrName, attrValue); } else { - fromValue = oldNode.getAttribute(attrName) + fromValue = oldNode.getAttribute(attrName); if (fromValue !== attrValue) { // apparently values are always cast to strings, ah well if (attrValue === 'null' || attrValue === 'undefined') { - oldNode.removeAttribute(attrName) + oldNode.removeAttribute(attrName); } else { - oldNode.setAttribute(attrName, attrValue) + oldNode.setAttribute(attrName, attrValue); } } } @@ -72,19 +72,19 @@ function copyAttrs (newNode, oldNode) { // Remove any extra attributes found on the original DOM element that // weren't found on the target element. for (var j = oldAttrs.length - 1; j >= 0; --j) { - attr = oldAttrs[j] + attr = oldAttrs[j]; if (attr.specified !== false) { - attrName = attr.name - attrNamespaceURI = attr.namespaceURI + attrName = attr.name; + attrNamespaceURI = attr.namespaceURI; if (attrNamespaceURI) { - attrName = attr.localName || attrName + attrName = attr.localName || attrName; if (!newNode.hasAttributeNS(attrNamespaceURI, attrName)) { - oldNode.removeAttributeNS(attrNamespaceURI, attrName) + oldNode.removeAttributeNS(attrNamespaceURI, attrName); } } else { if (!newNode.hasAttributeNS(null, attrName)) { - oldNode.removeAttribute(attrName) + oldNode.removeAttribute(attrName); } } } @@ -93,17 +93,17 @@ function copyAttrs (newNode, oldNode) { function copyEvents (newNode, oldNode) { for (var i = 0; i < eventsLength; i++) { - var ev = events[i] - if (newNode[ev]) { // if new element has a whitelisted attribute - oldNode[ev] = newNode[ev] // update existing element - } else if (oldNode[ev]) { // if existing element has it and new one doesnt - oldNode[ev] = undefined // remove it from existing element + var ev = events[i]; + if (newNode[ev]) { // if new element has a whitelisted attribute + oldNode[ev] = newNode[ev]; // update existing element + } else if (oldNode[ev]) { // if existing element has it and new one doesnt + oldNode[ev] = undefined; // remove it from existing element } } } function updateOption (newNode, oldNode) { - updateAttribute(newNode, oldNode, 'selected') + updateAttribute(newNode, oldNode, 'selected'); } // The "value" attribute is special for the element since it sets the @@ -111,54 +111,54 @@ function updateOption (newNode, oldNode) { // property will have no effect since it is only used to the set the initial // value. Similar for the "checked" attribute, and "disabled". function updateInput (newNode, oldNode) { - var newValue = newNode.value - var oldValue = oldNode.value + var newValue = newNode.value; + var oldValue = oldNode.value; - updateAttribute(newNode, oldNode, 'checked') - updateAttribute(newNode, oldNode, 'disabled') + updateAttribute(newNode, oldNode, 'checked'); + updateAttribute(newNode, oldNode, 'disabled'); if (newValue !== oldValue) { - oldNode.setAttribute('value', newValue) - oldNode.value = newValue + oldNode.setAttribute('value', newValue); + oldNode.value = newValue; } if (newValue === 'null') { - oldNode.value = '' - oldNode.removeAttribute('value') + oldNode.value = ''; + oldNode.removeAttribute('value'); } if (!newNode.hasAttributeNS(null, 'value')) { - oldNode.removeAttribute('value') + oldNode.removeAttribute('value'); } else if (oldNode.type === 'range') { // this is so elements like slider move their UI thingy - oldNode.value = newValue + oldNode.value = newValue; } } function updateTextarea (newNode, oldNode) { - var newValue = newNode.value + var newValue = newNode.value; if (newValue !== oldNode.value) { - oldNode.value = newValue + oldNode.value = newValue; } if (oldNode.firstChild && oldNode.firstChild.nodeValue !== newValue) { // Needed for IE. Apparently IE sets the placeholder as the // node value and vise versa. This ignores an empty update. if (newValue === '' && oldNode.firstChild.nodeValue === oldNode.placeholder) { - return + return; } - oldNode.firstChild.nodeValue = newValue + oldNode.firstChild.nodeValue = newValue; } } function updateAttribute (newNode, oldNode, name) { if (newNode[name] !== oldNode[name]) { - oldNode[name] = newNode[name] + oldNode[name] = newNode[name]; if (newNode[name]) { - oldNode.setAttribute(name, '') + oldNode.setAttribute(name, ''); } else { - oldNode.removeAttribute(name) + oldNode.removeAttribute(name); } } } diff --git a/test/diff.js b/test/diff.js index 0fda9fd..66b34bf 100644 --- a/test/diff.js +++ b/test/diff.js @@ -1,273 +1,273 @@ -var tape = require('tape') -var html = require('bel') -var nanomorph = require('../') +var tape = require('tape'); +var html = require('bel'); +var nanomorph = require('../'); -module.exports = abstractMorph +module.exports = abstractMorph; function abstractMorph (morph) { tape('abstract morph', function (t) { t.test('root level', function (t) { t.test('should replace a node', function (t) { - t.plan(1) - var a = html`

hello world

` - var b = html`
hello world
` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html`

hello world

`; + var b = html`
hello world
`; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should morph a node', function (t) { - t.plan(1) - var a = html`

hello world

` - var b = html`

hello you

` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html`

hello world

`; + var b = html`

hello you

`; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should morph a node with namespaced attribute', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html``; + var b = html``; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should ignore if node is same', function (t) { - t.plan(1) - var a = html`

hello world

` - var expected = a.outerHTML - var res = morph(a, a) - t.equal(res.outerHTML, expected, 'result was expected') - }) - }) + t.plan(1); + var a = html`

hello world

`; + var expected = a.outerHTML; + var res = morph(a, a); + t.equal(res.outerHTML, expected, 'result was expected'); + }); + }); t.test('nested', function (t) { t.test('should replace a node', function (t) { - t.plan(1) - var a = html`

hello world

` - var b = html`
hello world
` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html`

hello world

`; + var b = html`
hello world
`; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should replace a node', function (t) { - t.plan(1) - var a = html`

hello world

` - var b = html`

hello you

` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html`

hello world

`; + var b = html`

hello you

`; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should replace a node', function (t) { - t.plan(1) - var a = html`

hello world

` - var res = morph(a, a) - var expected = a.outerHTML - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html`

hello world

`; + var res = morph(a, a); + var expected = a.outerHTML; + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should append a node', function (t) { - t.plan(1) - var a = html`
` - var b = html`

hello you

` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html`
`; + var b = html`

hello you

`; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should remove a node', function (t) { - t.plan(1) - var a = html`

hello you

` - var b = html`
` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) - }) + t.plan(1); + var a = html`

hello you

`; + var b = html`
`; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); + }); t.test('values', function (t) { t.test('if new tree has no value and old tree does, remove value', function (t) { - t.plan(4) - var a = html`` - var b = html`` - var res = morph(a, b) - t.equal(res.getAttribute('value'), null) - t.equal(res.value, '') - - a = html`` - b = html`` - res = morph(a, b) - t.equal(res.getAttribute('value'), null) - t.equal(res.value, '') - }) + t.plan(4); + var a = html``; + var b = html``; + var res = morph(a, b); + t.equal(res.getAttribute('value'), null); + t.equal(res.value, ''); + + a = html``; + b = html``; + res = morph(a, b); + t.equal(res.getAttribute('value'), null); + t.equal(res.value, ''); + }); t.test('if new tree has value and old tree does too, set value from new tree', function (t) { - t.plan(4) - var a = html`` - var b = html`` - var res = morph(a, b) - t.equal(res.value, 'hi') - - a = html`` - a.value = 'howdy' - b = html`` - b.value = 'hi' - res = morph(a, b) - t.equal(res.value, 'hi') - - a = html`` - b = html`` - b.value = 'hi' - res = morph(a, b) - t.equal(res.value, 'hi') - - a = html`` - a.value = 'howdy' - b = html`` - res = morph(a, b) - t.equal(res.value, 'hi') - }) - }) + t.plan(4); + var a = html``; + var b = html``; + var res = morph(a, b); + t.equal(res.value, 'hi'); + + a = html``; + a.value = 'howdy'; + b = html``; + b.value = 'hi'; + res = morph(a, b); + t.equal(res.value, 'hi'); + + a = html``; + b = html``; + b.value = 'hi'; + res = morph(a, b); + t.equal(res.value, 'hi'); + + a = html``; + a.value = 'howdy'; + b = html``; + res = morph(a, b); + t.equal(res.value, 'hi'); + }); + }); t.test('isSameNode', function (t) { t.test('should return a if true', function (t) { - t.plan(1) - var a = html`
YOLO
` - var b = html`
FOMO
` + t.plan(1); + var a = html`
YOLO
`; + var b = html`
FOMO
`; b.isSameNode = function (el) { - return true - } - var res = morph(a, b) - t.equal(res.childNodes[0].data, 'YOLO') - }) + return true; + }; + var res = morph(a, b); + t.equal(res.childNodes[0].data, 'YOLO'); + }); t.test('should return b if false', function (t) { - t.plan(1) - var a = html`
YOLO
` - var b = html`
FOMO
` + t.plan(1); + var a = html`
YOLO
`; + var b = html`
FOMO
`; b.isSameNode = function (el) { - return false - } - var res = morph(a, b) - t.equal(res.childNodes[0].data, 'FOMO') - }) - }) + return false; + }; + var res = morph(a, b); + t.equal(res.childNodes[0].data, 'FOMO'); + }); + }); t.test('lists', function (t) { t.test('should append nodes', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html``; + var b = html``; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should remove nodes', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var res = morph(a, b) - var expected = b.outerHTML - t.equal(res.outerHTML, expected, 'result was expected') - }) - }) + t.plan(1); + var a = html``; + var b = html``; + var res = morph(a, b); + var expected = b.outerHTML; + t.equal(res.outerHTML, expected, 'result was expected'); + }); + }); t.test('selectables', function (t) { t.test('should append nodes', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html``; + var b = html``; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should append nodes (including optgroups)', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html``; + var b = html``; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should remove nodes', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html``; + var b = html``; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should remove nodes (including optgroups)', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html``; + var b = html``; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should add selected', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html``; + var b = html``; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should add selected (xhtml)', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html``; + var b = html``; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); t.test('should switch selected', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var expected = b.outerHTML - var res = morph(a, b) - t.equal(res.outerHTML, expected, 'result was expected') - }) - }) + t.plan(1); + var a = html``; + var b = html``; + var expected = b.outerHTML; + var res = morph(a, b); + t.equal(res.outerHTML, expected, 'result was expected'); + }); + }); t.test('should replace nodes', function (t) { - t.plan(1) - var a = html`` - var b = html`` - var expected = b.outerHTML - a = morph(a, b) - t.equal(a.outerHTML, expected, 'result was expected') - }) + t.plan(1); + var a = html``; + var b = html``; + var expected = b.outerHTML; + a = morph(a, b); + t.equal(a.outerHTML, expected, 'result was expected'); + }); t.test('should replace nodes after multiple iterations', function (t) { - t.plan(2) + t.plan(2); - var a = html`` - var b = html`` - var expected = b.outerHTML + var a = html``; + var b = html``; + var expected = b.outerHTML; - a = morph(a, b) - t.equal(a.outerHTML, expected, 'result was expected') + a = morph(a, b); + t.equal(a.outerHTML, expected, 'result was expected'); - b = html`` - expected = b.outerHTML + b = html``; + expected = b.outerHTML; - a = morph(a, b) - t.equal(a.outerHTML, expected, 'result was expected') - }) - }) + a = morph(a, b); + t.equal(a.outerHTML, expected, 'result was expected'); + }); + }); } tape('use id as a key hint', function (t) { @@ -276,26 +276,26 @@ tape('use id as a key hint', function (t) {
  • - ` + `; var b = html`` - var target = b.outerHTML + `; + var target = b.outerHTML; - var oldFirst = a.children[0] - var oldSecond = a.children[1] - var oldThird = a.children[2] + var oldFirst = a.children[0]; + var oldSecond = a.children[1]; + var oldThird = a.children[2]; - var c = nanomorph(a, b) - t.equal(oldFirst, c.children[0], 'first is equal') - t.equal(oldSecond, c.children[2], 'moved second is equal') - t.equal(oldThird, c.children[3], 'moved third is equal') - t.equal(c.outerHTML, target) - t.end() - }) + var c = nanomorph(a, b); + t.equal(oldFirst, c.children[0], 'first is equal'); + t.equal(oldSecond, c.children[2], 'moved second is equal'); + t.equal(oldThird, c.children[3], 'moved third is equal'); + t.equal(c.outerHTML, target); + t.end(); + }); t.test('handle non-id elements', function (t) { var a = html`` + `; var b = html`` - var target = b.outerHTML + `; + var target = b.outerHTML; - var oldSecond = a.children[1] - var oldThird = a.children[2] - var oldForth = a.children[3] + var oldSecond = a.children[1]; + var oldThird = a.children[2]; + var oldForth = a.children[3]; - var c = nanomorph(a, b) - t.equal(oldSecond, c.children[1], 'second is equal') - t.equal(oldThird, c.children[3], 'moved third is equal') - t.equal(oldForth, c.children[4], 'moved forth is equal') - t.equal(c.outerHTML, target) - t.end() - }) + var c = nanomorph(a, b); + t.equal(oldSecond, c.children[1], 'second is equal'); + t.equal(oldThird, c.children[3], 'moved third is equal'); + t.equal(oldForth, c.children[4], 'moved forth is equal'); + t.equal(c.outerHTML, target); + t.end(); + }); t.test('copy over children', function (t) { - var a = html`
    'hello'
    ` - var b = html`
    ` - var expected = b.outerHTML + var a = html`
    'hello'
    `; + var b = html`
    `; + var expected = b.outerHTML; - var c = nanomorph(a, b) - t.equal(c.outerHTML, expected, expected) - t.end() - }) + var c = nanomorph(a, b); + t.equal(c.outerHTML, expected, expected); + t.end(); + }); t.test('remove an element', function (t) { - var a = html`
    ` - var b = html`
    ` + var a = html`
    `; + var b = html`
    `; - var oldFirst = a.children[0] - var oldThird = a.children[2] - var expected = b.outerHTML + var oldFirst = a.children[0]; + var oldThird = a.children[2]; + var expected = b.outerHTML; - var c = nanomorph(a, b) + var c = nanomorph(a, b); - t.equal(c.children[0], oldFirst, 'first is equal') - t.equal(c.children[1], oldThird, 'second untouched') - t.equal(c.outerHTML, expected) - t.end() - }) + t.equal(c.children[0], oldFirst, 'first is equal'); + t.equal(c.children[1], oldThird, 'second untouched'); + t.equal(c.outerHTML, expected); + t.end(); + }); t.test('swap proxy elements', function (t) { - var nodeA = html`
  • ` - var placeholderA = html`
    ` + var nodeA = html`
  • `; + var placeholderA = html`
    `; placeholderA.isSameNode = function (el) { - return el === nodeA - } + return el === nodeA; + }; - var nodeB = html`
  • ` - var placeholderB = html`
    ` + var nodeB = html`
  • `; + var placeholderB = html`
    `; placeholderB.isSameNode = function (el) { - return el === nodeB - } + return el === nodeB; + }; - var a = html`
      ${nodeA}${nodeB}
    ` - var b = html`
      ${placeholderB}${placeholderA}
    ` - var c = nanomorph(a, b) + var a = html`
      ${nodeA}${nodeB}
    `; + var b = html`
      ${placeholderB}${placeholderA}
    `; + var c = nanomorph(a, b); - t.equal(c.children[0], nodeB, 'c.children[0] === nodeB') - t.equal(c.children[1], nodeA, 'c.children[1] === nodeA') - t.end() - }) + t.equal(c.children[0], nodeB, 'c.children[0] === nodeB'); + t.equal(c.children[1], nodeA, 'c.children[1] === nodeA'); + t.end(); + }); t.test('id match still morphs', function (t) { - var a = html`
  • FOO
  • ` - var b = html`
  • BAR
  • ` - var target = b.outerHTML - var c = nanomorph(a, b) - t.equal(c.outerHTML, target) - t.end() - }) + var a = html`
  • FOO
  • `; + var b = html`
  • BAR
  • `; + var target = b.outerHTML; + var c = nanomorph(a, b); + t.equal(c.outerHTML, target); + t.end(); + }); t.test('remove orphaned keyed nodes', function (t) { var a = html` @@ -390,53 +390,53 @@ tape('use id as a key hint', function (t) {
    1
  • a
  • - ` + `; var b = html`
    2
  • b
  • - ` - var expected = b.outerHTML - var c = nanomorph(a, b) - t.equal(c.outerHTML, expected) - t.end() - }) + `; + var expected = b.outerHTML; + var c = nanomorph(a, b); + t.equal(c.outerHTML, expected); + t.end(); + }); t.test('whitespace', function (t) { var a = html`
      -
    ` +`; var b = html`
    • -
    ` - var expected = b.outerHTML - var c = nanomorph(a, b) - t.equal(c.outerHTML, expected) - t.end() - }) +`; + var expected = b.outerHTML; + var c = nanomorph(a, b); + t.equal(c.outerHTML, expected); + t.end(); + }); t.test('nested with id', function (t) { - var child = html`
    ` - var placeholder = html`
    ` - placeholder.isSameNode = function (el) { return el === child } + var child = html`
    `; + var placeholder = html`
    `; + placeholder.isSameNode = function (el) { return el === child; }; - var a = html`
    ${child}
    ` - var b = html`
    ${placeholder}
    ` + var a = html`
    ${child}
    `; + var b = html`
    ${placeholder}
    `; - var c = nanomorph(a, b) - t.equal(c.children[0].children[0], child, 'is the same node') - t.end() - }) + var c = nanomorph(a, b); + t.equal(c.children[0].children[0], child, 'is the same node'); + t.end(); + }); t.test('nested without id', function (t) { - var child = html`
    child
    ` - var placeholder = html`
    placeholder
    ` - placeholder.isSameNode = function (el) { return el === child } - - var a = html`
    ${child}
    ` - var b = html`
    ${placeholder}
    ` - - var c = nanomorph(a, b) - t.equal(c.children[0].children[0], child, 'is the same node') - t.end() - }) -}) + var child = html`
    child
    `; + var placeholder = html`
    placeholder
    `; + placeholder.isSameNode = function (el) { return el === child; }; + + var a = html`
    ${child}
    `; + var b = html`
    ${placeholder}
    `; + + var c = nanomorph(a, b); + t.equal(c.children[0].children[0], child, 'is the same node'); + t.end(); + }); +}); diff --git a/test/events.js b/test/events.js index 309d29d..6f8d319 100644 --- a/test/events.js +++ b/test/events.js @@ -1,12 +1,12 @@ -let tape = require('tape') -let html = require('bel') +let tape = require('tape'); +let html = require('bel'); -module.exports = abstractMorphEvents +module.exports = abstractMorphEvents; function raiseEvent (element, eventName) { - let event = document.createEvent('Event') - event.initEvent(eventName, true, true) - element.dispatchEvent(event) + let event = document.createEvent('Event'); + event.initEvent(eventName, true, true); + element.dispatchEvent(event); } /* Note: Failing tests have been commented. They include the following: @@ -23,695 +23,695 @@ function abstractMorphEvents (morph) { tape('events', function (t) { t.test('events', function (t) { t.test('should have onabort events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'abort') + raiseEvent(res, 'abort'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onabort events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'abort') + raiseEvent(res, 'abort'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onabort events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'abort') + raiseEvent(res, 'abort'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onblur events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'blur') + raiseEvent(res, 'blur'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onblur events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'blur') + raiseEvent(res, 'blur'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onblur events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'blur') + raiseEvent(res, 'blur'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onchange events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'change') + raiseEvent(res, 'change'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onchange events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'change') + raiseEvent(res, 'change'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onchange events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'change') + raiseEvent(res, 'change'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onclick events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'click') + raiseEvent(res, 'click'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onclick events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'click') + raiseEvent(res, 'click'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onclick events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'click') + raiseEvent(res, 'click'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have oncontextmenu events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'contextmenu') + raiseEvent(res, 'contextmenu'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy oncontextmenu events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'contextmenu') + raiseEvent(res, 'contextmenu'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy oncontextmenu events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'contextmenu') + raiseEvent(res, 'contextmenu'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have ondblclick events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'dblclick') + raiseEvent(res, 'dblclick'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy ondblclick events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dblclick') + raiseEvent(res, 'dblclick'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy ondblclick events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dblclick') + raiseEvent(res, 'dblclick'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have ondrag events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'drag') + raiseEvent(res, 'drag'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy ondrag events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'drag') + raiseEvent(res, 'drag'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy ondrag events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'drag') + raiseEvent(res, 'drag'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have ondragend events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'dragend') + raiseEvent(res, 'dragend'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy ondragend events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dragend') + raiseEvent(res, 'dragend'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy ondragend events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dragend') + raiseEvent(res, 'dragend'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have ondragenter events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'dragenter') + raiseEvent(res, 'dragenter'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy ondragenter events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dragenter') + raiseEvent(res, 'dragenter'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy ondragenter events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dragenter') + raiseEvent(res, 'dragenter'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have ondragleave events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'dragleave') + raiseEvent(res, 'dragleave'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy ondragleave events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dragleave') + raiseEvent(res, 'dragleave'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy ondragleave events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dragleave') + raiseEvent(res, 'dragleave'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have ondragover events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'dragover') + raiseEvent(res, 'dragover'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy ondragover events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dragover') + raiseEvent(res, 'dragover'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy ondragover events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dragover') + raiseEvent(res, 'dragover'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have ondragstart events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'dragstart') + raiseEvent(res, 'dragstart'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy ondragstart events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dragstart') + raiseEvent(res, 'dragstart'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy ondragstart events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'dragstart') + raiseEvent(res, 'dragstart'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have ondrop events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'drop') + raiseEvent(res, 'drop'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy ondrop events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'drop') + raiseEvent(res, 'drop'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy ondrop events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'drop') + raiseEvent(res, 'drop'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onerror events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'error') + raiseEvent(res, 'error'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onerror events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'error') + raiseEvent(res, 'error'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onerror events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'error') + raiseEvent(res, 'error'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onfocus events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'focus') + raiseEvent(res, 'focus'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onfocus events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'focus') + raiseEvent(res, 'focus'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onfocus events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'focus') + raiseEvent(res, 'focus'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); /* t.test('should have onfocusin events(html attribute) ', function (t) { t.plan(1) @@ -809,741 +809,741 @@ function abstractMorphEvents (morph) { }) */ t.test('should have oninput events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'input') + raiseEvent(res, 'input'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy oninput events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'input') + raiseEvent(res, 'input'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy oninput events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'input') + raiseEvent(res, 'input'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onkeydown events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'keydown') + raiseEvent(res, 'keydown'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onkeydown events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'keydown') + raiseEvent(res, 'keydown'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onkeydown events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'keydown') + raiseEvent(res, 'keydown'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onkeypress events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'keypress') + raiseEvent(res, 'keypress'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onkeypress events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'keypress') + raiseEvent(res, 'keypress'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onkeypress events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'keypress') + raiseEvent(res, 'keypress'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onkeyup events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'keyup') + raiseEvent(res, 'keyup'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onkeyup events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'keyup') + raiseEvent(res, 'keyup'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onkeyup events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'keyup') + raiseEvent(res, 'keyup'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onmousedown events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'mousedown') + raiseEvent(res, 'mousedown'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onmousedown events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mousedown') + raiseEvent(res, 'mousedown'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onmousedown events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mousedown') + raiseEvent(res, 'mousedown'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onmouseenter events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'mouseenter') + raiseEvent(res, 'mouseenter'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onmouseenter events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mouseenter') + raiseEvent(res, 'mouseenter'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onmouseenter events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mouseenter') + raiseEvent(res, 'mouseenter'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onmouseleave events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'mouseleave') + raiseEvent(res, 'mouseleave'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onmouseleave events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mouseleave') + raiseEvent(res, 'mouseleave'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onmouseleave events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mouseleave') + raiseEvent(res, 'mouseleave'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onmousemove events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'mousemove') + raiseEvent(res, 'mousemove'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onmousemove events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mousemove') + raiseEvent(res, 'mousemove'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onmousemove events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mousemove') + raiseEvent(res, 'mousemove'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onmouseout events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'mouseout') + raiseEvent(res, 'mouseout'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onmouseout events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mouseout') + raiseEvent(res, 'mouseout'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onmouseout events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mouseout') + raiseEvent(res, 'mouseout'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onmouseover events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'mouseover') + raiseEvent(res, 'mouseover'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onmouseover events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mouseover') + raiseEvent(res, 'mouseover'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onmouseover events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mouseover') + raiseEvent(res, 'mouseover'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onmouseup events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'mouseup') + raiseEvent(res, 'mouseup'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onmouseup events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mouseup') + raiseEvent(res, 'mouseup'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onmouseup events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'mouseup') + raiseEvent(res, 'mouseup'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onreset events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'reset') + raiseEvent(res, 'reset'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onreset events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'reset') + raiseEvent(res, 'reset'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onreset events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'reset') + raiseEvent(res, 'reset'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onresize events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'resize') + raiseEvent(res, 'resize'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onresize events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'resize') + raiseEvent(res, 'resize'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onresize events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'resize') + raiseEvent(res, 'resize'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onscroll events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'scroll') + raiseEvent(res, 'scroll'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onscroll events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'scroll') + raiseEvent(res, 'scroll'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onscroll events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'scroll') + raiseEvent(res, 'scroll'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onselect events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'select') + raiseEvent(res, 'select'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onselect events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'select') + raiseEvent(res, 'select'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onselect events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'select') + raiseEvent(res, 'select'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should have onsubmit events(html attribute) ', function (t) { - t.plan(1) - let expectationMet = false - let res = html`` + t.plan(1); + let expectationMet = false; + let res = html``; - raiseEvent(res, 'submit') + raiseEvent(res, 'submit'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should not copy onsubmit events', function (t) { - t.plan(1) - let expectationMet = true - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = true; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'submit') + raiseEvent(res, 'submit'); function fail (e) { - e.preventDefault() - expectationMet = false + e.preventDefault(); + expectationMet = false; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); t.test('should copy onsubmit events(html arrtibute)', function (t) { - t.plan(1) - let expectationMet = false - let a = html`` - let b = html`` - let res = morph(a, b) + t.plan(1); + let expectationMet = false; + let a = html``; + let b = html``; + let res = morph(a, b); - raiseEvent(res, 'submit') + raiseEvent(res, 'submit'); function pass (e) { - e.preventDefault() - expectationMet = true + e.preventDefault(); + expectationMet = true; } - t.equal(expectationMet, true, 'result was expected') - }) + t.equal(expectationMet, true, 'result was expected'); + }); /* t.test('should have ontouchcancel events(html attribute) ', function (t) { t.plan(1) @@ -1783,6 +1783,6 @@ function abstractMorphEvents (morph) { t.equal(expectationMet, true, 'result was expected') }) */ - }) - }) + }); + }); } diff --git a/test/fuzz.js b/test/fuzz.js index fbe2713..47388f7 100644 --- a/test/fuzz.js +++ b/test/fuzz.js @@ -1,69 +1,69 @@ -var seed = require('math-random-seed') -var tape = require('tape') -var html = require('bel') +var seed = require('math-random-seed'); +var tape = require('tape'); +var html = require('bel'); -var nanomorph = require('../') +var nanomorph = require('../'); tape('chaos monkey #1', function (t) { - var a, b - a = html`
    ` - b = html`
    ` - compare(a, b, t) - t.end() -}) + var a, b; + a = html`
    `; + b = html`
    `; + compare(a, b, t); + t.end(); +}); // modeled after // https://github.com/mafintosh/hypercore/blob/master/test/tree-index.js -var random = seed('choo choo') -var props = null +var random = seed('choo choo'); +var props = null; tape('fuzz tests', function (t) { - var a, b + var a, b; for (var i = 0; i < 7; i++) { for (var j = 0; j < 5; j++) { - a = create(i, j, 0) + a = create(i, j, 0); for (var k = 0; k < 3; k++) { - b = create(i, k, 1) - props = { depth: i, propCount: j, offset: k } - compare(a, b, t, props) + b = create(i, k, 1); + props = { depth: i, propCount: j, offset: k }; + compare(a, b, t, props); } } } - t.end() -}) + t.end(); +}); function create (depth, propCount, offset) { - var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' - var root = document.createElement('div') - var el = root - var _el = null - var str = '' - offset += 100 + var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + var root = document.createElement('div'); + var el = root; + var _el = null; + var str = ''; + offset += 100; for (var i = 0; i < depth; i++) { - _el = document.createElement('div') - el.appendChild(_el) + _el = document.createElement('div'); + el.appendChild(_el); for (var j = 0; j < propCount; j++) { - str = '' + str = ''; for (var k = propCount; k > 0; --k) { - str += chars[Math.floor(random() * 100) % chars.length] + str += chars[Math.floor(random() * 100) % chars.length]; } - el.setAttribute(str, str) - offset++ + el.setAttribute(str, str); + offset++; } - el = _el + el = _el; } - return root + return root; } function compare (a, b, t, props) { - props = props ? JSON.stringify(props) : undefined - var expected = b.cloneNode(true) - var res = nanomorph(a, b) - deepEqualNode(res, expected, t, props) + props = props ? JSON.stringify(props) : undefined; + var expected = b.cloneNode(true); + var res = nanomorph(a, b); + deepEqualNode(res, expected, t, props); } function deepEqualNode (a, b, t, props) { - t.ok(a.isEqualNode(b), props) + t.ok(a.isEqualNode(b), props); for (var i = a.childNodes.length - 1; i >= 0; --i) { - deepEqualNode(a.childNodes[i], a.childNodes[i], t, props) + deepEqualNode(a.childNodes[i], a.childNodes[i], t, props); } } diff --git a/test/index.js b/test/index.js index bc05bee..71e6a74 100644 --- a/test/index.js +++ b/test/index.js @@ -1,24 +1,24 @@ -var tape = require('tape') +var tape = require('tape'); -var abstractMorph = require('./diff') -var nanomorph = require('../') -var abstractMorphEvents = require('./events') +var abstractMorph = require('./diff'); +var nanomorph = require('../'); +var abstractMorphEvents = require('./events'); if (!module.parent) { - require('./fuzz') - specificTests(nanomorph) - abstractMorph(nanomorph) - abstractMorphEvents(nanomorph) + require('./fuzz'); + specificTests(nanomorph); + abstractMorph(nanomorph); + abstractMorphEvents(nanomorph); } else { - module.exports = abstractMorph + module.exports = abstractMorph; } function specificTests (morph) { tape('nanomorph', function (t) { t.test('should assert input types', function (t) { - t.plan(2) - t.throws(morph, /a/) - t.throws(morph.bind(null, {}), /b/) - }) - }) + t.plan(2); + t.throws(morph, /a/); + t.throws(morph.bind(null, {}), /b/); + }); + }); }