Как 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';
Другие вопросы по тегам