2019-09-18 10:07:04 -07:00
|
|
|
import { module, test } from 'qunit';
|
|
|
|
import { setupRenderingTest } from 'ember-qunit';
|
|
|
|
import { render, settled } from '@ember/test-helpers';
|
|
|
|
import hbs from 'htmlbars-inline-precompile';
|
2020-11-09 12:17:51 -08:00
|
|
|
import { noop } from 'lodash-es';
|
2019-09-18 10:07:04 -07:00
|
|
|
|
|
|
|
module('Integration | Component | wait-promise-container', function(hooks): void {
|
|
|
|
setupRenderingTest(hooks);
|
|
|
|
|
|
|
|
test('it renders', async function(assert): Promise<void> {
|
2020-08-26 15:44:50 -07:00
|
|
|
let testResolve: (value?: unknown) => void = noop;
|
2019-09-18 10:07:04 -07:00
|
|
|
this.set(
|
|
|
|
'promise',
|
|
|
|
new Promise((resolve): void => {
|
|
|
|
testResolve = resolve;
|
|
|
|
})
|
|
|
|
);
|
|
|
|
await render(hbs`
|
|
|
|
<WaitPromiseContainer @promise={{promise}} as |resolved|>
|
|
|
|
{{resolved}}
|
|
|
|
</WaitPromiseContainer>
|
|
|
|
`);
|
|
|
|
|
|
|
|
assert.equal(this.element.textContent && this.element.textContent.trim(), '');
|
|
|
|
|
|
|
|
testResolve('test');
|
|
|
|
|
|
|
|
// we need to wait to the rerender to happen as setting a property will trigger an ember loop
|
|
|
|
await settled();
|
|
|
|
assert.equal(this.element.textContent && this.element.textContent.trim(), 'test');
|
|
|
|
});
|
|
|
|
});
|