Test executeScripts
This commit is contained in:
15
src/scripts/lib/execute-scripts.js
Normal file
15
src/scripts/lib/execute-scripts.js
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
var forEachEls = require("./foreach-els")
|
||||||
|
var evalScript = require("./eval-script")
|
||||||
|
// Finds and executes scripts (used for newly added elements)
|
||||||
|
// Needed since innerHTML does not run scripts
|
||||||
|
module.exports = function(el) {
|
||||||
|
// console.log("going to execute scripts for ", el)
|
||||||
|
forEachEls(el.querySelectorAll("script"), function(script) {
|
||||||
|
if (!script.type || script.type.toLowerCase() === "text/javascript") {
|
||||||
|
if (script.parentNode) {
|
||||||
|
script.parentNode.removeChild(script)
|
||||||
|
}
|
||||||
|
evalScript(script)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
16
tests/scripts/lib/execute-scripts.js
Normal file
16
tests/scripts/lib/execute-scripts.js
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
var tape = require("tape")
|
||||||
|
|
||||||
|
var executeScripts = require("../../../src/scripts/lib/execute-scripts")
|
||||||
|
|
||||||
|
tape("test executeScripts method", function(t) {
|
||||||
|
document.body.className = ""
|
||||||
|
|
||||||
|
var container = document.createElement("div")
|
||||||
|
container.innerHTML = "<" + "script" + ">document.body.className = 'executed';</" + "script" + "><" + "script" + ">document.body.className += ' correctly';</" + "script" + ">"
|
||||||
|
|
||||||
|
t.equal(document.body.className, "", "script hasn't been executed yet")
|
||||||
|
executeScripts(container)
|
||||||
|
t.equal(document.body.className, "executed correctly", "script has been properly executed")
|
||||||
|
|
||||||
|
t.end()
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user