From 00e5e0ba1a76a7d96f713eaa57228187281b632a Mon Sep 17 00:00:00 2001 From: Kris Selden Date: Tue, 14 Jun 2016 15:52:30 -0700 Subject: [PATCH] [BUGFIX release] Fix #13670 reconnecting an empty outlet. Add failing test for #13670 and fix render options shaping to fix isStable. --- packages/ember-routing/lib/system/route.js | 9 +++++++-- packages/ember/tests/routing/basic_test.js | 8 ++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/ember-routing/lib/system/route.js b/packages/ember-routing/lib/system/route.js index 6d537e383ab..fc7c422355a 100644 --- a/packages/ember-routing/lib/system/route.js +++ b/packages/ember-routing/lib/system/route.js @@ -2030,9 +2030,13 @@ var Route = EmberObject.extend(ActionHandler, Evented, { // into its outlets, which won't render anywhere. All of this // statefulness should get the machete in 2.0. this.connections[i] = { + owner: connection.owner, into: connection.into, outlet: connection.outlet, - name: connection.name + name: connection.name, + controller: undefined, + template: undefined, + ViewClass: undefined }; run.once(this.router, '_setOutlets'); } @@ -2130,7 +2134,8 @@ function buildRenderOptions(route, namePassed, isDefaultRender, _name, options) outlet, name, controller, - template: template || route._topLevelViewTemplate + template: template || route._topLevelViewTemplate, + ViewClass: undefined }; assert(`Could not find "${name}" template, view, or component.`, isDefaultRender || template); diff --git a/packages/ember/tests/routing/basic_test.js b/packages/ember/tests/routing/basic_test.js index 25b60fb63ab..0441fdf0df6 100644 --- a/packages/ember/tests/routing/basic_test.js +++ b/packages/ember/tests/routing/basic_test.js @@ -2439,6 +2439,14 @@ test('Route supports clearing outlet explicitly', function() { router.send('hideExtra'); }); equal(jQuery('div.posts-extra:contains(postsExtra)', '#qunit-fixture').length, 0, 'The posts/extra template was removed'); + run(function() { + router.send('showModal'); + }); + equal(jQuery('div.posts-modal:contains(postsModal)', '#qunit-fixture').length, 1, 'The posts/modal template was rendered'); + run(function() { + router.send('showExtra'); + }); + equal(jQuery('div.posts-extra:contains(postsExtra)', '#qunit-fixture').length, 1, 'The posts/extra template was rendered'); handleURL('/users');