teatime-test-utils

0.13.0 • Public • Published

teatime-test-utils

Collection of implemented Page objects for the Teatime Components. Designed to be used in automatic tests with WebDriverIO bindings.

Table of contents

Usage

Usually, interaction with the web-interfaces results in getting or setting some state of its elements. In order to implement these actions using WebDriver bindings, you require locators for the elements and certain commands.

Locators provide you possibility to identify an element in the content of the web application. Usually, it is a CSS selector. Teatime Test Utils contains all the necessary CSS selectors for interaction with Teatime Components. You may find them at pageObject folder. Since Teatime Components use CSS Modules, it guarantees that all the CSS selectors will be unique. Simple examples should look like this:

example of the action-button click in the interface

const Button = require('teatime-test-utils/pageObject/Button');
 
it('should click the button', () => {
  browser.click(Button.action);
  // assert it was clicked
});

In order to make more complex interactions like setting the inputs value or choosing particular option in the selects menu, Teatime Test Utils provide you functions getValue and setValue. Unlike WebDriverIOs same commands, these contain information about inner implementation of Teatime Components. To use them, you should provide attribute name selector like in the example below:

example of setting inputs value

const {getValue, setValue} = require('teatime-test-utils');
 
it('should set input value', () => {
  setValue()('[name="username"]', 'Alexey');
  // assert it was setted
});

Setup

Use of Teatime Test Utils requires compilation of your code.

In the first place, you should add a posibility to threat your CSS files as a commonJS modules. Keep in mind that CSS tokens in tests should be generated in the same way as in the tested web application.

Addtionaly, I suggest you to compile the code of your tests with babel-preset-power-assert in order to receive detailed information in the error-reports.

Extensibility

Should mention about tool/index.js. Coming soon.

Useful links

License

The MIT License

Dependencies (3)

Dev Dependencies (14)

Package Sidebar

Install

npm i teatime-test-utils

Weekly Downloads

0

Version

0.13.0

License

MIT

Last publish

Collaborators

  • sullenor