var tape = require("tape") var switches = require("../../lib/switches") var noop = require("../../lib/util/noop") tape("test outerHTML switch", function(t) { var outerHTML = switches.outerHTML var doc = document.implementation.createHTMLDocument() var container = doc.createElement("div") container.innerHTML = "
Original Text
" doc.body.appendChild(container) var p = doc.createElement("p") p.innerHTML = "New Text" outerHTML.bind({ onSwitch: noop })(doc.querySelector("p"), p) t.equals(doc.querySelector("p").innerHTML, "New Text", "Elements correctly switched") t.notEquals(doc.querySelector("p").id, "p", "other attributes overwritten correctly") t.end() }) tape("test innerHTML switch", function(t) { var innerHTML = switches.innerHTML var doc = document.implementation.createHTMLDocument() var container = doc.createElement("div") container.innerHTML = "Original Text
" doc.body.appendChild(container) var p = doc.createElement("p") p.innerHTML = "New Text" p.className = "p" innerHTML.bind({ onSwitch: noop })(doc.querySelector("p"), p) t.equals(doc.querySelector("p").innerHTML, "New Text", "Elements correctly switched") t.equals(doc.querySelector("p").className, "p", "classname set correctly") t.equals(doc.querySelector("p").id, "p", "other attributes set correctly") p.removeAttribute("class") innerHTML.bind({ onSwitch: noop })(doc.querySelector("p"), p) t.equals(doc.querySelector("p").className, "", "classname set correctly") t.end() }) tape("test replaceNode switch", function(t) { var replaceNode = switches.replaceNode var doc = document.implementation.createHTMLDocument() var container = doc.createElement("div") container.innerHTML = "Original Text
" doc.body.appendChild(container) var p = doc.createElement("p") p.innerHTML = "New Text" replaceNode.bind({ onSwitch: noop })(doc.querySelector("p"), p) t.equals(doc.querySelector("div").innerHTML, "New Text
", "Elements correctly switched") t.end() })