var Browser = require("zombie");
var assert = require("assert");
// Load the page from localhost
browser = new Browser()
browser.visit("http://localhost:3001/", function() {
// Fill email, password and submit form
browser.
fill("email", "zom...@underworld.dead").
fill("password", "eat-the-living").
pressButton("Sign Me Up!", function() {
// Form submitted, new page loaded.
assert.ok(browser.success);
assert.equal(browser.text("title"), "Welcome To Brains Depot");
})
});
<html>
<head>
<title>Brains Depot Login</title>
</head>
<body>
<form method="post">
Email: <input name="email" /><br />
Password: <input name="password" type="password" /><br />
<input type="submit" value="Sign Me Up!" />
</form>
</body>
</html>
When you submit the form, you see this:
So the form itself is working. Yet when I run the zombie app, I get this:
/home/shane/node_modules/zombie/lib/zombie/forms.js:111
return this.ownerDocument.parentWindow.browser.dispatchEvent(this, event);
^
TypeError: Cannot call method 'dispatchEvent' of undefined
at Object.HTML.HTMLFormElement._dispatchSubmitEvent (/home/shane/node_modules/zombie/lib/zombie/forms.js:111:50)
at Object.HTML.HTMLInputElement._eventDefaults.click (/home/shane/node_modules/zombie/lib/zombie/forms.js:136:23)
at Object.define.proto.dispatchEvent (/home/shane/node_modules/zombie/node_modules/jsdom/lib/jsdom/level2/html.js:480:48)
at EventLoop.dispatch (/home/shane/node_modules/zombie/lib/zombie/eventloop.js:135:40)
at Object.Windows._create.window._evaluate (/home/shane/node_modules/zombie/lib/zombie/windows.js:271:23)
at EventLoop.dispatch (/home/shane/node_modules/zombie/lib/zombie/eventloop.js:134:14)
at EventLoop.perform (/home/shane/node_modules/zombie/lib/zombie/eventloop.js:120:5)
at EventLoop.dispatch (/home/shane/node_modules/zombie/lib/zombie/eventloop.js:131:10)
at Browser.dispatchEvent (/home/shane/node_modules/zombie/lib/zombie/browser.js:206:28)
at Browser.fire (/home/shane/node_modules/zombie/lib/zombie/browser.js:201:10)