['@test does not create extraneous promises'](assert) { let first = renderSettled(); let second = renderSettled(); assert.strictEqual(first, second); return all([first, second]); }
['@test resolves renderers exist but no runloops are triggered'](assert) { this.render(strip`{{foo}}`, { foo: 'bar' }); return renderSettled().then(() => { assert.ok(true, 'resolved even without runloops'); }); }
let handleTransitionResolve = () => { if (!bootOptions.options.shouldRender) { // No rendering is needed, and routing has completed, simply return. return this; } else { // Ensure that the visit promise resolves when all rendering has completed return renderSettled().then(() => this); } };
schedule('actions', null, () => { this.component.set('foo', 'set in actions'); promise = renderSettled().then(() => { this.assertText('set in afterRender'); }); schedule('afterRender', null, () => { this.component.set('foo', 'set in afterRender'); }); });
['@test resolves when rendering has completed (after property update)']() { this.render(strip`{{foo}}`, { foo: 'bar' }); this.assertText('bar'); this.component.set('foo', 'baz'); this.assertText('bar'); return renderSettled().then(() => { this.assertText('baz'); }); }
['@test resolves when no rendering is happening'](assert) { return renderSettled().then(() => { assert.ok(true, 'resolved even without rendering'); }); }