Giter Site home page Giter Site logo

casper-chai's Introduction

Casper.JS Assertions for Chai Build Status

Casper–Chai provides a set of custom assertions for use with CasperJS. You get all the benefits of Chai to test with CasperJS.

It is an alternative to Casper's built-in Tester assertions. Instead of using Casper's Tester you can use (in this case with mocha-casperjs and Chai):

describe("my page", function () {
  it("can be opened by Casper", function () {
    casper.open("http://www.google.com")

    casper.then(function () {
      expect(casper.currentHTTPStatus).to.equal(200);
    });

    casper.then(function () {
      expect("Google").to.matchTitle
    });
  });
});

Examples

Say we have a page like this:

<html>
  <head>
    <title>Casper-Chai Example</title>
    <link rel="stylesheet" href="site.css" type="text/css">
  </head>
  <body>
    <header>
      <a href="javascript:void(0)" class="signin">Sign In</a>
    </header>
    <article>
      <ul class="breadcrumbs">
        <li>Home</li>
        <li>Blog</li>
        <li aria-selected="true">Using Chai in your casper tests</li>
      </ul>
      <div class="greeting">Hello</div>
      <span class="greeting help">Need help?</span>
    </article>
    <footer>
      <a href="/help" id="help-link" class="help">Help</a>
    </footer>
  </body>
</html>

Here are some assertions that pass

expect(/Casper/).to.matchTitle
'Casper-Chai Example'.should.matchTitle
'site.css'.should.be.loaded
'body > header'.should.be.inDOM
'document.querySelectorAll('li').count'.should.evaluate.to.be.above(2)
'#help-link'.should.have.attribute('href')[0].and.equal("/help")
'ul.breadcrumbs li'.should.contain.an.element.with.attr('aria-selected')
'.greeting'.should.have.tagName(['div', 'span'])
'li[aria-selected]'.should.contain.text('Using Chai')
'header a'.should.have.text(/Sign/)
'.greeting'.should.not.have.text(/Bye/)

Here are some assertions that fail

'li'.should.have.attr('aria-selected')
'li'.should.not.have.an.element.with.attr('aria-selected')
'.greeting'.should.not.have.tagName('span')
'.help'.should.have.text('Help')
'li[aria-selected]'.should.have.text('Using Chai')

See the full documentation and more examples, and if you are cool with CoffeeScript, check out the unit tests.

Installation

Casper-Chai can be installed with npm using npm install casper-chai, or including casper-chai.coffee in a directory require will find it.

Add extensions to Chai with:

casper_chai = require('casper-chai');
chai.use(casper_chai);

To develop and test casper-chai locally, clone the project and run npm install to get dependencies (which, obviously, requires npm to be installed). You will need cake to generate documentation - which should be possible by running npm install -g coffee-script. Also make sure you have the latest version of casperjs installed.

casper-chai's People

Contributors

ai avatar brianmhunt avatar domenic avatar ikido avatar kmiyashiro avatar nathanboktae avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.