Как создать фиктивный компонент для использования в интеграционном тесте Ember? - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть компонент some-container, который принимает хэш идентификаторов, сопоставленных с другими компонентами ember.Вот как это используется:

{{modules/some-container
  pageKey="foo"
  widgetIdToComponent=(hash
    foo=(component "modules/dummy-component")
  )
}}

Я пишу интеграционный тест для этого компонента и хочу, чтобы этот тест не зависел от других компонентов.Есть ли способ определить фиктивные компоненты в файле теста интеграции Ember?

1 Ответ

0 голосов
/ 16 ноября 2018

Разобрался! Решением является использование this.register. Смотри ниже:

moduleForComponent('some-container', 'Integration | Component | some-container', {
  integration: true,

  beforeEach() {
    this.register(
      'component:foo-div',
      Component.extend({
        layout: hbs`<div data-test-foo />`
      })
    );

    this.register(
      'component:bar-div',
      Component.extend({
        layout: hbs`<div data-test-bar />`
      })
    );

    this.component = hbs`
    {{modules/some-container
      pageKey="foo"
      widgetIdToComponent=(hash
        fooId=(component "foo-div")
        barId=(component "bar-div")
      )
    }}`;
  }
});

test('it renders foo div when only foo div is returned', function(assert) {
  this.render(this.component);

  assert.dom('[data-test-foo]').exists('foo div renders');
  assert.dom('[data-test-bar]').doesNotExist('foo div renders');
});
...