Skip to content

Instantly share code, notes, and snippets.

@iezer
Last active April 6, 2018 22:17
Show Gist options
  • Save iezer/aff428680dd32d83689a69a83c0d6db7 to your computer and use it in GitHub Desktop.
Save iezer/aff428680dd32d83689a69a83c0d6db7 to your computer and use it in GitHub Desktop.
Ember Test Helpers
```js
// x-img-test.js
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render } from '@ember/test-helpers';
import hbs from 'htmlbars-inline-precompile';
module('Integration | Component | x-img', function(hooks) {
setupRenderingTest(hooks);
test('it renders', async function(assert) {
await render(hbs`{{x-img}}`);
let img = this.element.querySelector('img');
// Next assertion will fail without either the following line,
// or a test waiter registered in the component:
// await waitUntil(() => img.complete);
assert.ok(img.complete, 'image has loaded');
});
});
```
```hbs
<img src={{src}}>
```
```js
// components/x-img.js
import Component from '@ember/component';
import Ember from 'ember';
import { registerWaiter, unregisterWaiter } from '@ember/test';
export default Component.extend({
didInsertElement() {
this._super(...arguments);
if (Ember.testing) {
this._isComplete = () => this.element.querySelector('img').complete;
registerWaiter(this._isComplete);
}
},
willDestroyElement() {
if (Ember.testing) {
unregisterWaiter(this._isComplete);
}
this._super(...arguments);
},
src: "https://emberjs.com/images/tomsters/original-72df3a45.png"
});
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment