1
0
Fork 0
sortable-recipes/ember-ui/tests/integration/components/meal-item-test.js
2020-03-09 09:20:44 -05:00

63 lines
1.8 KiB
JavaScript

import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { setupMirage } from 'ember-cli-mirage/test-support';
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
module('Integration | Component | meal-item', function(hooks) {
setupRenderingTest(hooks);
setupMirage(hooks);
hooks.beforeEach(initMeal);
const defaultTemplate = hbs`
<MealItem
@meal={{meal}}
@handleFocus={{handleFocus}}
@handleBlur={{handleBlur}} />
`;
test('it renders a wrapper href', async function(assert) {
await render(defaultTemplate);
assert.dom('[data-test-id=meal-link]').hasTagName('a');
});
test('it renders meal preview image', async function(assert) {
await render(defaultTemplate);
assert.dom('[data-test-id=meal-preview-image]').hasAttribute('src', 'image.jpg');
});
test('it renders meal data as text', async function(assert) {
await render(defaultTemplate);
assert.dom('[data-test-id=meal-name]').hasText('Cookies');
assert.dom('[data-test-id=meal-ingredients-list]').hasText('Love, Chocolate');
assert.dom('[data-test-id=meal-tags]').includesText('Home');
assert.dom('[data-test-id=meal-tags]').includesText('Desserts');
});
async function initMeal() {
let store = this.owner.lookup('service:store');
this.server.create('meal', {
area: 'Home',
category: 'Desserts',
id: 1,
ingredients: [
{
name: 'Love',
measure: 'Infinity',
}, {
name: 'Chocolate',
measure: 'As Much As You Desire',
},
],
name: 'Cookies',
thumbnailUrl: 'image.jpg',
});
this.meal = await store.findRecord('meal', 1);
this.handleFocus = () => {};
this.handleBlur = () => {};
}
});