Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/workmanw/ember-qunit-assert-helpers
An ember-addon that provides additional QUnit 2.0 assertions specific to Ember.js.
https://github.com/workmanw/ember-qunit-assert-helpers
ember ember-addon qunit
Last synced: 10 days ago
JSON representation
An ember-addon that provides additional QUnit 2.0 assertions specific to Ember.js.
- Host: GitHub
- URL: https://github.com/workmanw/ember-qunit-assert-helpers
- Owner: workmanw
- License: mit
- Created: 2017-01-27T02:35:00.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-10-17T14:09:33.000Z (about 3 years ago)
- Last Synced: 2024-10-18T00:32:30.277Z (19 days ago)
- Topics: ember, ember-addon, qunit
- Language: JavaScript
- Homepage:
- Size: 39.1 KB
- Stars: 13
- Watchers: 4
- Forks: 9
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ember-qunit-assert-helpers
This addon provides additional QUnit 2.0 assertions that are specific to Ember.js. It is meant to be a replacement for [ember-dev](https://github.com/emberjs/ember-dev) which only supports QUnit 1.0.
Can be use in your application or an addon.
## Installation
```
ember install ember-qunit-assert-helpers
```## Compatibility
This addon relies on functionality introduced in Ember 2.1. If you need support for Ember 2.0 and old, please also include [ember-debug-handlers-polyfill](https://github.com/rwjblue/ember-debug-handlers-polyfill).
## Usage
### `Ember.assert` Assertions
`assert.expectAssertion(callback, matcher)`
Asserts that `Ember.assert` did throw an error. An optional string or regular expression matcher can be provided to match a specific error message.
```javascript
test('triggers Ember.assert', function(assert) {
assert.expectAssertion(() => {
// Code triggers Ember.assert
});assert.expectAssertion(() => {
Ember.assert('You forgot "bar", the required parameter');
}, /You forgot "\w+", the required parameter/);
})
```### `Ember.run` Assertions
`assert.expectNoRunLoop()`
Asserts that there is not a current run loop running and there are no scheduled timers. If there are, they will be cleaned up.
```javascript
test('`Ember.deprecate` was called anytime during the test and matched', function(assert) {
Ember.run.later(() => { });
assert.expectNoRunLoop(); // Fail
});
```### `Ember.deprecate` Assertions
`assert.expectDeprecation(callback, matcher)`
Asserts that `Ember.deprecate` was called. An optional callback can be provided. An optional string or regular expression matcher can also be provided.
```javascript
test('`Ember.deprecate` was called anytime during the test', function(assert) {
// ...// One or more deprecations were triggered since the start of this test
assert.expectDeprecation();
});test('`Ember.deprecate` was called in a callback', function(assert) {
assert.expectDeprecation(() => {
// Code triggers one or more Ember.deprecate
});
});test('`Ember.deprecate` was called anytime during the test and matched', function(assert) {
// ...// One or more deprecations matching a specific message were triggered since the start of this test
assert.expectDeprecation(/expected deprecation message/);
});test('`Ember.deprecate` was called in a callback', function(assert) {
assert.expectDeprecation(() => {
Ember.deprecate('API is deprecated', false, {
id: 'old-api',
until: '3.0.0'
})
}, 'API is deprecated');
});
````assert.expectNoDeprecation(callback, matcher)`
Asserts that `Ember.deprecate` was not called. An optional callback can be provided. An optional matcher can also be provided.
```javascript
test('`Ember.deprecate` was not called anytime during the test', function(assert) {
// ...// No deprecations were triggered since the start of this test
assert.expectNoDeprecation();
});
```### `Ember.warn` Assertions
*Same as `Ember.deprecate`, but for warnings. Above code samples can be applied here.*
`assert.expectWarning(callback, matcher)`
Asserts that `Ember.warn` was called. An optional callback can be provided. An optional matcher can also be provided.
`assert.expectNoWarning(callback, matcher)`
Asserts that `Ember.warn` was not called. An optional callback can be provided. An optional matcher can also be provided.
### `afterEach` asserting
You can easily use these asserts in your `afterEach`.
```javascript
moduleForComponent('x-foo', {
integration: true,
afterEach(assert) {
assert.expectNoDeprecation();
assert.expectNoRunLoop();
assert.expectNoWarning();
}
});
```## Thanks and Credit
Thanks to Robert Jackson ([@rwjblue](https://github.com/rwjblue)) for providing guidance on the implementation.
Credit goes [ember-dev](https://github.com/emberjs/ember-dev) and [CrowdStrike](https://www.crowdstrike.com/) for the overall concept and much the API provided by this addon.