Merge pull request #1305 from pygy/validate-root-node

Validate the DOM node passed to `render`
This commit is contained in:
Leo Horie 2016-09-09 10:37:49 -04:00 committed by GitHub
commit 6fdfcbb852
4 changed files with 30 additions and 0 deletions

View file

@ -22,6 +22,16 @@ o.spec("mount", function() {
render = coreRenderer($window).render
})
o("throws on invalid `root` DOM node", function() {
var threw = false
try {
mount(null, {view: function() {}})
} catch (e) {
threw = true
}
o(threw).equals(true)
})
o("renders into `root`", function() {
mount(root, {
view : function() {

View file

@ -28,6 +28,16 @@ o.spec("route", function() {
route.prefix(prefix)
})
o("throws on invalid `root` DOM node", function() {
var threw = false
try {
route(null, '/', {'/':{view: function() {}}})
} catch (e) {
threw = true
}
o(threw).equals(true)
})
o("renders into `root`", function() {
$window.location.href = prefix + "/"
route(root, "/", {

View file

@ -515,6 +515,7 @@ module.exports = function($window) {
}
function render(dom, vnodes) {
if (!dom) throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.")
var hooks = []
var active = $doc.activeElement

View file

@ -21,4 +21,13 @@ o.spec("render", function() {
o(root.childNodes.length).equals(0)
})
o("throws on invalid root node", function(){
var threw = false
try {
render(null, [])
} catch (e) {
threw = true
}
o(threw).equals(true)
})
})