An open API service indexing awesome lists of open source software.

https://github.com/yratanov/ember-page-object-asserts

QUnit asserts for https://github.com/san650/ember-cli-page-object
https://github.com/yratanov/ember-page-object-asserts

assertions page-object qunit

Last synced: 5 months ago
JSON representation

QUnit asserts for https://github.com/san650/ember-cli-page-object

Awesome Lists containing this project

README

          

ember-page-object-asserts
==============================================================================

[![TravisCI Build Status][travis-badge]][travis-badge-url]
[![codecov](https://codecov.io/gh/yratanov/ember-page-object-asserts/branch/master/graph/badge.svg)](https://codecov.io/gh/yratanov/ember-page-object-asserts)
[![Maintainability](https://api.codeclimate.com/v1/badges/2b8436017d28227f08ce/maintainability)](https://codeclimate.com/github/yratanov/ember-page-object-asserts/maintainability)
[![Dependabot enabled](https://img.shields.io/badge/dependabot-enabled-blue.svg?logo=dependabot)](https://dependabot.com/)

[travis-badge]: https://travis-ci.com/yratanov/ember-page-object-asserts.svg?branch=master
[travis-badge-url]: https://travis-ci.org/yratanov/ember-page-object-asserts

Adds QUnit asserts for [ember-cli-page-object](https://github.com/san650/ember-cli-page-object) to make test errors more user-friendly and make code shorter.

Why?
------------------------------------------------------------------------------

User-friendly messages and simpler syntax:

```js
const page = create({
link: {
scope: 'a',
href: attribute('href'),
isHighlighted: hasClass('highlighted'),
},
});

assert.po(page.element).text.is("test"); //message 'page.element: text is "text"'
assert.po(page.link).href.is('google.com'); //message 'page.link: href is "google.com"'
assert.po(page.link).href.includes('google.com'); //message 'page.link: href includes "google.com"'
assert.po(page.link).isHighlighted(); //message 'page.link: is highlighted'
assert.po(page.input).isPresent(); //message 'page.input: is present'
```

Compatibility
------------------------------------------------------------------------------

* Ember.js v2.18 or above
* Ember CLI v2.13 or above
* Node.js v8 or above

Installation
------------------------------------------------------------------------------

```
ember install ember-page-object-asserts
```

Usage
------------------------------------------------------------------------------

Import new assert in your `tests/test-helper.js` file:
```js
import { addPoAssert } from 'ember-page-object-asserts';

addPoAssert();

setApplication(Application.create(config.APP));
```

#### Built-in asserts

##### is/isNot

```js
assert.po(page.element).text.is("test");
assert.po(page.element).text.isNot("test");
assert.po(page.input).value.is('test');
```

##### includes/doesNotInclude

```js
assert.po(page.element).text.includes("test");
assert.po(page.element).text.doesNotInclude("test");
```

##### isPresent/isHidden

```js
assert.po(page.input).isPresent();
assert.po(page.input).isHidden();
```

##### Collections

```js
const page = create({
list: collection('li')
});

assert.po(page.list).length.is(3);
```

##### Properties as asserts

```js
const page = create({
link: {
isHighlighted: hasClass('highlighted'),
},
});

assert.po(page.list).isHighlighted();
assert.po(page.list).isHighlighted(false);
```

Contributing
------------------------------------------------------------------------------

See the [Contributing](CONTRIBUTING.md) guide for details.

License
------------------------------------------------------------------------------

This project is licensed under the [MIT License](LICENSE.md).