2019-08-31 20:51:14 -07:00

43 lines
1.5 KiB
JavaScript

import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render, find } from '@ember/test-helpers';
import hbs from 'htmlbars-inline-precompile';
import avatars from 'wherehows-web/mirage/fixtures/avatars';
const [avatar] = avatars;
const expectedAvatarElementClassName = '.avatar';
module('Integration | Component | avatars/avatar image', function(hooks) {
setupRenderingTest(hooks);
test('avatar-image render', async function(assert) {
let avatarImage;
await render(hbs`{{avatars/avatar-image}}`);
avatarImage = find(expectedAvatarElementClassName);
assert.ok(avatarImage, 'it renders with expected className');
assert.equal(avatarImage.tagName.toLowerCase(), 'img', 'it renders with expected element');
this.set('avatar', avatar);
await render(hbs`{{avatars/avatar-image avatar=avatar}}`);
avatarImage = find(expectedAvatarElementClassName);
assert.equal(avatarImage.getAttribute('alt'), avatar.name, 'alt attribute is bound to avatar name');
assert.equal(avatarImage.getAttribute('src'), avatar.imageUrl, 'src attribute is bound to avatar imageUrl');
});
test('image fallback', async function(assert) {
const { imageUrlFallback } = avatar;
this.set('avatar', { ...avatar, imageUrl: '' });
await render(hbs`{{avatars/avatar-image avatar=avatar}}`);
assert.equal(
find(expectedAvatarElementClassName).getAttribute('src'),
imageUrlFallback,
'src attribute is set to fallback url avatar'
);
});
});