Не удалось найти частичное в тесте компонента

У меня есть тест компонента, который не работает, потому что он не может найти частичное отображение шаблона. Конкретная ошибка: «Ошибка утверждения: невозможно найти часть с именем« компоненты / список действий-элемент-контент »».

Мой тестовый файл в основном сгенерирован ember-cli по умолчанию:

import {
  moduleForComponent,
  test
} from 'ember-qunit';

moduleForComponent('activity-list-item', 'ActivityListComponent', {
  // specify the other units that are required for this test
  needs: ['helper:format-date']
});

test('it renders', function() {
  expect(2);

  // creates the component instance
  var component = this.subject();
  equal(component._state, 'preRender');

  // appends the component to the page
  this.append();
  equal(component._state, 'inDOM');
});

и шаблон компонента, который выглядит так:

{{#if activity.momentId}}
  {{#link-to 'moment' momentId class='close-dropdown'}}
    {{partial 'components/activity-list-item-content'}}
  {{/link-to}}
{{else}}
  {{partial 'components/activity-list-item-content'}}
{{/if}}

Мое приложение работает нормально без каких-либо ошибок, поэтому мне интересно, чего не хватает в моей тестовой настройке. Я также попытался добавить его в массив needs и получил ту же ошибку:

needs: ['helper:format-date', 'template:components/-activity-list-item-content']

Как мне заставить свои тесты найти партиал?

Обновить

@GJK указал, что частичное имя должно начинаться с подчеркивания вместо тире. Если я внесу это изменение, тест будет пройден, однако я получу предупреждение об устаревании в консоли, в котором говорится:

УСТАРЕВАНИЕ: Модули не должны содержать символы подчеркивания. Попытка поиска «myapp-ember/templates/components/-activity-list-item-content», которая не была найдена. Вместо этого переименуйте «myapp-ember/templates/components/_activity-list-item-content» в «myapp-ember/templates/components/-activity-list-item-content».


person Peter Brown    schedule 15.10.2014    source источник
comment
@GJK, если я перехожу на символ подчеркивания, я получаю эту ошибку: УСТАРЕВАНИЕ: модули не должны содержать символы подчеркивания. Попытка поиска myapp-ember/templates/components/-activity-list-item-content не была найдена. Вместо этого переименуйте myapp-ember/templates/components/_activity-list-item-content в myapp-ember/templates/components/-activity-list-item-content.   -  person Peter Brown    schedule 15.10.2014
comment
Учитывая пример в документации (ember-cli), почему не называть частичные без дефисов или подчеркиваний?   -  person Patsy Issa    schedule 15.10.2014
comment
@PatsyIssa, это помогло, спасибо! Интересно, почему они предполагают, что частичные части должны начинаться с дефиса или подчеркивания, когда это на самом деле не требуется.   -  person Peter Brown    schedule 16.10.2014
comment
OP и @GJK ember-cli хотят, чтобы они начинались с дефиса вместо подчеркивания. Все в ember cli с дефисами вместо подчеркивания. Я считаю, что префикс это просто соглашение, поэтому, когда кто-то другой смотрит на код, он понимает, что это частичный   -  person jakecraige    schedule 16.10.2014


Ответы (1)


Нашел эту проблему: https://github.com/rwjblue/ember-qunit/issues/110

Текущий обходной путь:

import resolver from '../../helpers/resolver';

moduleForComponent('some-other-thing', 'component:some-other-thing', {
  needs: ['component:some-thing'],

  setup: function() {
    this.container.register('template:path/to/partial', 
           resolver.resolve('template:path/to/-partial'));
  }
});
person givanse    schedule 27.02.2015