Как вы проверяете аргумент glimmer.js?
Как правильно передать аргумент компоненту glimmer.js при тестировании?
Например, у меня есть компонент, который принимает @story
в качестве аргумента, которому я передаю сюжетный объект. На самом деле он отлично работает в коде, но я пытаюсь научиться тестировать компоненты Glimmer, и я не могу найти ни единого кусочка документации по передаче аргументов в тестовой среде.
Я попробовал следующее, и это, очевидно, не работает, но я близко?
test('it displays args', async function(assert) {
const storySample = {as_a: 'person', i_want: 'happiness', so_that: 'I can be happy'};
await this.render(hbs`<StoryViewer @story={{theStory}} />`, {theStory: storySample});
assert.equal(this.containerElement.textContent.trim(),
'As a person I want happiness so that I can be happy');
});
Обновить
Новые вещи, которые не работают:
await this.render(hbs`<StoryViewer @story={{theStory}} />`);
this.args = {'theStory': storySample};
await this.render(hbs`<StoryViewer />`);
this.args = {'story': storySample};
await this.render(hbs`<StoryViewer />`);
this.args = {'@story': storySample};
Обновление 1/5/2018
В конце концов я был направлен на проблему по этой теме в репозитории glimmer.js. Для тех, кто сталкивается с этой проблемой, вы можете проверить эту проблему:
https://github.com/glimmerjs/glimmer.js/issues/14
Спойлер: Это сравнительно старая проблема, и все ссылки внутри нее (на момент написания статьи) - это кроличьи норы, где некоторые проблемы закрыты, потому что они "переосмысливают" то, как они делают вещи. Так что, по сути, все еще невозможно сделать это чисто.
Я предполагаю, что есть какой-то уродливый способ сделать это, но мне это не интересно, поэтому я временно отказался от Glimmer.js, пока тесты не станут лучше.