diff --git a/api/tests/test-mount.js b/api/tests/test-mount.js index ee383c65..b65daf4a 100644 --- a/api/tests/test-mount.js +++ b/api/tests/test-mount.js @@ -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() { diff --git a/api/tests/test-router.js b/api/tests/test-router.js index a21efe87..d43f0b44 100644 --- a/api/tests/test-router.js +++ b/api/tests/test-router.js @@ -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, "/", { diff --git a/render/render.js b/render/render.js index b0091e41..72f33e13 100644 --- a/render/render.js +++ b/render/render.js @@ -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 diff --git a/render/tests/test-render.js b/render/tests/test-render.js index f23c9565..88d65d93 100644 --- a/render/tests/test-render.js +++ b/render/tests/test-render.js @@ -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) + }) })