Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write own CasperJS modules?

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!

like image 967
ValeriiVasin Avatar asked Feb 28 '13 15:02

ValeriiVasin


1 Answers

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
like image 70
Josh Hibschman Avatar answered Oct 14 '22 07:10

Josh Hibschman