For example, I have a step that often needs to be executed, eg user login before some test.
How to write reusable chunks of code for CasperJS? Their documentation for extending CasperJS is written only for one file...
Thanks!
Here's a simple approach. If not familiar with coffeescript, convert it to JS over at js2coffee.
tests/casper/test.coolPage.coffee
loginModule = require("./test.login")
loginModule.login("test","testPW")
casper.test.comment "Testing cool stuff, should be logged in by now"
casper.thenOpen casper.cli.get("url") + "/myCoolPage", ->
@test.assertExists '#myCoolDiv'
casper.then () ->
@test.assertExists '.somethingElse'
casper.run ->
@test.done()
tests/casper/test.login.coffee
exports.login = (username, password) ->
casper.test.comment "Loggin in with username \"#{username}\", password \"#{password}\""
casper.start casper.cli.get("url") + "/login", ->
@test.assertExists "input[name=username]", "input[name=password]"
casper.then () ->
@sendKeys "input[name=username]", username
@sendKeys "input[name=password]", password
@click "input[type=submit]"
casper.then () ->
#assert you got logged in
running from command line:
cd tests/casper
casperjs test test.coolPage.coffee --url=http..my-test-url