Как ember-qunit отображает компоненты в интеграционном тестировании?
Вот базовый компонентный / интеграционный тест для ember-qunit.
import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
moduleForComponent('my-component', 'TODO: put something here', {
integration: true
});
test('it renders', function(assert) {
this.render(hbs`{{my-component}}`);
console.log('This is the rendered element', this.$()[0]);
assert.ok(false);
});
У меня есть ember-addon с такой структурой каталогов:
addon/
.. components/
.... my-component/
...... component.js
...... style.less
...... template.hbs
app/
.. components/
.... my-component.js
...... component.js
tests/
.. integration/
.... components/
...... my-component-test.js
Как тлеющий уголь определяет где {{my-component}}
является?
Это вроде в том же духе, как это:
Как Ember-CLI прекомпилирует шаблоны?
Редактировать 1
Согласно комментариям, я связал регулярный app
компонент к addon
компонент, просто импортируя / экспортируя его.
app/components/my-component/component.js
export { default } from 'my-application/components/my-component'
Тем не менее, журнал консоли показывает только это:
This is the rendered element <div id="ember234 class="ember-view">
<!---->
</div>
1 ответ
Решение
By convention.
Ember try to find a file named my-component
под вашим app/components
каталог или app/components/templates
каталог или app/helpers
каталог.
Если вы определите my-component
под вашим addon/components
directory, you need to re-define it under your app/components
каталог или tests/dummy/app/components
directory such as:
export { default } from 'my-addon/components/my-component';