diff --git a/packages/ember-application/tests/system/visit_test.js b/packages/ember-application/tests/system/visit_test.js
index b2b171826d0..0f6d79b6e43 100644
--- a/packages/ember-application/tests/system/visit_test.js
+++ b/packages/ember-application/tests/system/visit_test.js
@@ -357,6 +357,23 @@ QUnit.test('visit() returns a promise that resolves without rendering when shoul
});
});
+QUnit.test('visit() renders a template when shouldRender is set to true', function(assert) {
+ assert.expect(3);
+
+ run(() => {
+ createApplication();
+
+ App.register('template:application', compile('
Hello world
'));
+ });
+
+ assert.strictEqual(jQuery('#qunit-fixture').children().length, 0, 'there are no elements in the fixture element');
+
+ return run(App, 'visit', '/', { shouldRender: true }).then(instance => {
+ assert.ok(instance instanceof ApplicationInstance, 'promise is resolved with an ApplicationInstance');
+ assert.strictEqual(jQuery('#qunit-fixture').children().length, 1, 'there is 1 element in the fixture element after visit');
+ });
+});
+
QUnit.test('visit() returns a promise that resolves without rendering when shouldRender is set to false with Engines', function(assert) {
assert.expect(3);
diff --git a/packages/ember-routing/lib/system/route.js b/packages/ember-routing/lib/system/route.js
index 4e1e1f10b4f..816b40354ab 100644
--- a/packages/ember-routing/lib/system/route.js
+++ b/packages/ember-routing/lib/system/route.js
@@ -1264,7 +1264,7 @@ let Route = EmberObject.extend(ActionHandler, Evented, {
this.setupController(controller, context, transition);
- if (!this._environment || this._environment.options.shouldRender) {
+ if (this._environment.options.shouldRender) {
this.renderTemplate(controller, context);
}
},