import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import { hbs } from 'ember-cli-htmlbars'; module('Integration | Component | ref', function(hooks) { setupRenderingTest(hooks); test('it renders', async function(assert) { // Set any properties with this.set('myProperty', 'value'); // Handle any actions with this.set('myAction', function(val) { ... }); const componentAction = function() {}; // yield the action in the component, optionally changing the name // {{ yield (hash // publicAction=(action 'componentAction') // )}} const _yield = { publicAction: componentAction, }; this.set('api', _yield); await render(hbs``); // the value is now available on the target // in most cases `this` i.e. the scope of the template (component/controller) assert.deepEqual(this.api, _yield); assert.equal(this.element.textContent.trim(), ''); // // Template block usage: // await render(hbs` // // `); // assert.equal(this.element.textContent.trim(), ''); }); });