node package manager

tinto

Tinto

Version Build Status Test Coverage Code Climate Dependency Status Inline docs

A functional testing framework for component-based web applications

Usage

Installation

$ npm install --save-dev tinto

Configuration

Tinto is configured from an optional tinto.conf.js file that should be placed in your project root. It should export the configuration object directly.

Options

  • includeStack: Whether or not to include a stack trace in assertion error messages.
  • bundles: An array of bundle names or bundle instances to load.
  • browser: Which browser to use. See the WebDriver documentation for the list of supported browsers.

Defaults

{
  includeStack: false,
  bundles: [],
  browser: 'firefox'
}

Assertions syntax

Components

Property assertion
searchButton.should.have.text('Search');
Property assertion (alternate syntax)
searchButton.text.should.equal('Search');
State assertion
searchButton.should.be.enabled;
Count assertion
grid.should.have(3).rows;
Equality assertion
grid.rows(0).should.equal(firstRow);
Containing assertion
grid.should.contain(firstRow, secondRow);
Multiple assertions
searchButton.should.have.text('Search').and.be.enabled;
Multiple assertions (alternate syntax)
searchButton.should(
  have.text('Search'),
  be.enabled
);
Awaiting assertion
searchButton.should.eventually.have.text('Search').and.be.enabled;
Awaiting assertion (alternate syntax)
searchButton.should.eventually(
  have.text('Search'),
  be.enabled
);

Component definition

ES5
function Grid() {
  Component.apply(this, arguments);
 
  this.getter('rows', function() {
    return this.find('tr');
  });
}
 
tinto.inherits(Grid, Component);
ES6
class Grid extends Component {
  get rows() {
    return this.find('tr');
  }
}
.extend
var Grid = Component.extend({
  get rows() {
    return this.find('tr');
  }
});

Command-line interface

In order to use the CLI, you must install tinto globally. You can then run tinto --help to list available commands.

Examples

See the example folder for a complete example.

License

MIT License

Credits

This project was inspired by the excellent Testatoo functional testing library for Java.