From 51d3614d0c9eef9d2161b54f743caae9b9007a7c Mon Sep 17 00:00:00 2001 From: Pat O'Callaghan Date: Mon, 1 Mar 2021 20:26:44 +0000 Subject: [PATCH 1/2] Add deprecation for `render` method --- .../application/debug-render-tree-test.ts | 7 +- .../integration/application/rendering-test.js | 27 +- .../-internals/routing/lib/system/route.ts | 38 ++- .../ember/tests/routing/model_loading_test.js | 5 +- .../tests/routing/template_rendering_test.js | 233 +++++++++++------- tests/docs/expected.js | 1 + 6 files changed, 206 insertions(+), 105 deletions(-) diff --git a/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts b/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts index 904990bbb2b..06dad4a0d4c 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts +++ b/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts @@ -222,10 +222,13 @@ if (ENV._DEBUG_RENDER_TREE) { } renderTemplate(_: Controller, { showHeader }: Model): void { - this.render(); + expectDeprecation(() => this.render(), 'Usage of `render` is deprecated.'); if (showHeader) { - this.render('header', { outlet: 'header' }); + expectDeprecation( + () => this.render('header', { outlet: 'header' }), + 'Usage of `render` is deprecated.' + ); } else { expectDeprecation( () => this.disconnectOutlet('header'), diff --git a/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js b/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js index 7efd7402d5b..9dd92db4210 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js @@ -464,11 +464,13 @@ moduleFor( 'route:application', Route.extend({ renderTemplate() { - this.render(); - this.render('nav', { - into: 'application', - outlet: 'nav', - }); + expectDeprecation(() => { + this.render(); + this.render('nav', { + into: 'application', + outlet: 'nav', + }); + }, 'Usage of `render` is deprecated.'); }, }) ); @@ -613,7 +615,10 @@ moduleFor( }, renderTemplate(controller, model) { - this.render({ controller: model.color, model }); + expectDeprecation( + () => this.render({ controller: model.color, model }), + 'Usage of `render` is deprecated.' + ); }, }) ); @@ -659,7 +664,10 @@ moduleFor( }, renderTemplate(controller, model) { - this.render('common', { controller: 'common', model }); + expectDeprecation( + () => this.render('common', { controller: 'common', model }), + 'Usage of `render` is deprecated.' + ); }, }) ); @@ -672,7 +680,10 @@ moduleFor( }, renderTemplate(controller, model) { - this.render('common', { controller: 'common', model }); + expectDeprecation( + () => this.render('common', { controller: 'common', model }), + 'Usage of `render` is deprecated.' + ); }, }) ); diff --git a/packages/@ember/-internals/routing/lib/system/route.ts b/packages/@ember/-internals/routing/lib/system/route.ts index f57c581ef8c..f50dc5a9d72 100644 --- a/packages/@ember/-internals/routing/lib/system/route.ts +++ b/packages/@ember/-internals/routing/lib/system/route.ts @@ -1485,6 +1485,29 @@ class Route extends EmberObject implements IRoute { return route && route.currentModel; } + /** + `_render` is used to render a template into a region of another template + (indicated by an `{{outlet}}`). + + @method _render + @param {String} name the name of the template to render + @param {Object} [options] the options + @param {String} [options.into] the template to render into, + referenced by name. Defaults to the parent template + @param {String} [options.outlet] the outlet inside `options.into` to render into. + Defaults to 'main' + @param {String|Object} [options.controller] the controller to use for this template, + referenced by name or as a controller instance. Defaults to the Route's paired controller + @param {Object} [options.model] the model object to set on `options.controller`. + Defaults to the return value of the Route's model hook + @private + */ + _render(name?: string, options?: PartialRenderOptions) { + let renderOptions = buildRenderOptions(this, name, options); + ROUTE_CONNECTIONS.get(this).push(renderOptions); + once(this._router, '_setOutlets'); + } + /** A hook you can use to render the template for the current route. @@ -1521,7 +1544,7 @@ class Route extends EmberObject implements IRoute { */ renderTemplate(_controller: any, _model: {}) { // eslint-disable-line no-unused-vars - this.render(); + this._render(); } /** @@ -1652,9 +1675,16 @@ class Route extends EmberObject implements IRoute { @public */ render(name?: string, options?: PartialRenderOptions) { - let renderOptions = buildRenderOptions(this, name, options); - ROUTE_CONNECTIONS.get(this).push(renderOptions); - once(this._router, '_setOutlets'); + deprecate('Usage of `render` is deprecated.', false, { + id: 'route-render-template', + until: '4.0.0', + url: 'https://deprecations.emberjs.com/v3.x/#toc_route-render-template', + for: 'ember-source', + since: { + enabled: '3.27.0', + }, + }); + this._render(name, options); } /** diff --git a/packages/ember/tests/routing/model_loading_test.js b/packages/ember/tests/routing/model_loading_test.js index 9a9151286e8..ca93c5717cb 100644 --- a/packages/ember/tests/routing/model_loading_test.js +++ b/packages/ember/tests/routing/model_loading_test.js @@ -214,7 +214,10 @@ moduleFor( Route.extend({ controllerName: 'myController', renderTemplate() { - this.render('alternative_home'); + expectDeprecation( + () => this.render('alternative_home'), + 'Usage of `render` is deprecated.' + ); }, }) ); diff --git a/packages/ember/tests/routing/template_rendering_test.js b/packages/ember/tests/routing/template_rendering_test.js index df0f00a8ea1..34cff663e5f 100644 --- a/packages/ember/tests/routing/template_rendering_test.js +++ b/packages/ember/tests/routing/template_rendering_test.js @@ -76,7 +76,7 @@ moduleFor( 'route:home', Route.extend({ renderTemplate() { - this.render('homepage'); + expectDeprecation(() => this.render('homepage'), 'Usage of `render` is deprecated.'); }, }) ); @@ -93,7 +93,7 @@ moduleFor( 'route:home', Route.extend({ renderTemplate() { - this.render('homepage'); + expectDeprecation(() => this.render('homepage'), 'Usage of `render` is deprecated.'); }, }) ); @@ -121,7 +121,7 @@ moduleFor( Route.extend({ controllerName: 'foo', renderTemplate() { - this.render('homepage'); + expectDeprecation(() => this.render('homepage'), 'Usage of `render` is deprecated.'); }, }) ); @@ -159,7 +159,10 @@ moduleFor( 'route:homepage', Route.extend({ renderTemplate() { - this.render({ controller: 'home' }); + expectDeprecation( + () => this.render({ controller: 'home' }), + 'Usage of `render` is deprecated.' + ); }, }) ); @@ -199,7 +202,7 @@ moduleFor( 'route:home', Route.extend({ renderTemplate() { - this.render('homepage'); + expectDeprecation(() => this.render('homepage'), 'Usage of `render` is deprecated.'); }, }) ); @@ -219,9 +222,11 @@ moduleFor( 'route:home', Route.extend({ renderTemplate() { - this.render('bio', { - model: { name: 'emberjs' }, - }); + expectDeprecation(() => { + this.render('bio', { + model: { name: 'emberjs' }, + }); + }, 'Usage of `render` is deprecated.'); }, }) ); @@ -266,10 +271,12 @@ moduleFor( templateName: 'the_real_home_template', actions: { showAlert() { - this.render('alert', { - into: 'home', - outlet: 'alert', - }); + expectDeprecation(() => { + this.render('alert', { + into: 'home', + outlet: 'alert', + }); + }, 'Usage of `render` is deprecated.'); }, }, }) @@ -299,7 +306,7 @@ moduleFor( Route.extend({ templateName: 'alert', renderTemplate() { - this.render({}); + expectDeprecation(() => this.render({}), 'Usage of `render` is deprecated.'); }, }) ); @@ -420,7 +427,10 @@ moduleFor( 'route:middle.bottom', Route.extend({ renderTemplate() { - this.render('middle/bottom', { into: 'top' }); + expectDeprecation( + () => this.render('middle/bottom', { into: 'top' }), + 'Usage of `render` is deprecated.' + ); }, }) ); @@ -454,8 +464,10 @@ moduleFor( 'route:home', Route.extend({ renderTemplate() { - this.render('person/profile'); - this.render('person/details', { into: 'person/profile' }); + expectDeprecation(() => { + this.render('person/profile'); + this.render('person/details', { into: 'person/profile' }); + }, 'Usage of `render` is deprecated.'); }, }) ); @@ -485,11 +497,13 @@ moduleFor( 'route:posts', Route.extend({ renderTemplate() { - this.render(); - this.render('posts/menu', { - into: 'application', - outlet: 'menu', - }); + expectDeprecation(() => { + this.render(); + this.render('posts/menu', { + into: 'application', + outlet: 'menu', + }); + }, 'Usage of `render` is deprecated.'); }, }) ); @@ -637,7 +651,10 @@ moduleFor( }, renderTemplate() { - this.render('shared', { controller: 'shared' }); + expectDeprecation( + () => this.render('shared', { controller: 'shared' }), + 'Usage of `render` is deprecated.' + ); }, }); @@ -707,17 +724,19 @@ moduleFor( 'route:posts', Route.extend({ renderTemplate() { - this.render('posts/menu', { - into: 'application', - outlet: 'menu', - }); + expectDeprecation(() => { + this.render('posts/menu', { + into: 'application', + outlet: 'menu', + }); - this.render(); + this.render(); - this.render('posts/footer', { - into: 'application', - outlet: 'footer', - }); + this.render('posts/footer', { + into: 'application', + outlet: 'footer', + }); + }, 'Usage of `render` is deprecated.'); }, }) ); @@ -782,10 +801,12 @@ moduleFor( Route.extend({ actions: { showModal() { - this.render('posts/modal', { - into: 'application', - outlet: 'modal', - }); + expectDeprecation(() => { + this.render('posts/modal', { + into: 'application', + outlet: 'modal', + }); + }, 'Usage of `render` is deprecated.'); }, hideModal() { expectDeprecation( @@ -806,9 +827,11 @@ moduleFor( Route.extend({ actions: { showExtra() { - this.render('posts/extra', { - into: 'posts/index', - }); + expectDeprecation(() => { + this.render('posts/extra', { + into: 'posts/index', + }); + }, 'Usage of `render` is deprecated.'); }, hideExtra() { expectDeprecation( @@ -912,10 +935,12 @@ moduleFor( Route.extend({ actions: { showModal() { - this.render('posts/modal', { - into: 'application', - outlet: 'modal', - }); + expectDeprecation(() => { + this.render('posts/modal', { + into: 'application', + outlet: 'modal', + }); + }, 'Usage of `render` is deprecated.'); }, hideModal() { expectDeprecation( @@ -965,7 +990,7 @@ moduleFor( } ['@test Route silently fails when cleaning an outlet from an inactive view'](assert) { - assert.expect(3); // handleURL + assert.expect(4); // handleURL this.addTemplate('application', '{{outlet}}'); this.addTemplate('posts', "{{outlet 'modal'}}"); @@ -990,7 +1015,10 @@ moduleFor( ); }, showModal() { - this.render('modal', { into: 'posts', outlet: 'modal' }); + expectDeprecation( + () => this.render('modal', { into: 'posts', outlet: 'modal' }), + 'Usage of `render` is deprecated.' + ); }, hideModal() { expectDeprecation( @@ -1013,7 +1041,8 @@ moduleFor( ['@test Specifying non-existent controller name in route#render throws'](assert) { expectDeprecation('Usage of `renderTemplate` is deprecated.'); - assert.expect(2); + expectDeprecation('Usage of `render` is deprecated.'); + assert.expect(3); this.router.map(function () { this.route('home', { path: '/' }); @@ -1074,11 +1103,13 @@ moduleFor( 'route:application', Route.extend({ renderTemplate() { - this.render(); - this.render('modal', { - into: 'application', - outlet: 'other', - }); + expectDeprecation(() => { + this.render(); + this.render('modal', { + into: 'application', + outlet: 'other', + }); + }, 'Usage of `render` is deprecated.'); }, }) ); @@ -1105,11 +1136,13 @@ moduleFor( 'route:application', Route.extend({ renderTemplate() { - this.render(); - this.render('modal', { - into: 'application', - outlet: 'other', - }); + expectDeprecation(() => { + this.render(); + this.render('modal', { + into: 'application', + outlet: 'other', + }); + }, 'Usage of `render` is deprecated.'); }, actions: { banish() { @@ -1153,11 +1186,13 @@ moduleFor( 'route:application', Route.extend({ renderTemplate() { - this.render(); - this.render('modal', { - into: 'application', - outlet: 'other', - }); + expectDeprecation(() => { + this.render(); + this.render('modal', { + into: 'application', + outlet: 'other', + }); + }, 'Usage of `render` is deprecated.'); }, }) ); @@ -1180,10 +1215,12 @@ moduleFor( Route.extend({ actions: { launch() { - this.render('modal', { - into: 'application', - outlet: 'other', - }); + expectDeprecation(() => { + this.render('modal', { + into: 'application', + outlet: 'other', + }); + }, 'Usage of `render` is deprecated.'); }, }, }) @@ -1221,14 +1258,16 @@ moduleFor( 'route:app', Route.extend({ renderTemplate() { - this.render('app', { - outlet: 'app', - into: 'application', - }); - this.render('common', { - outlet: 'common', - into: 'app', - }); + expectDeprecation(() => { + this.render('app', { + outlet: 'app', + into: 'application', + }); + this.render('common', { + outlet: 'common', + into: 'app', + }); + }, 'Usage of `render` is deprecated.'); }, }) ); @@ -1237,10 +1276,12 @@ moduleFor( 'route:sub', Route.extend({ renderTemplate() { - this.render('sub', { - outlet: 'sub', - into: 'app', - }); + expectDeprecation(() => { + this.render('sub', { + outlet: 'sub', + into: 'app', + }); + }, 'Usage of `render` is deprecated.'); }, }) ); @@ -1282,10 +1323,12 @@ moduleFor( Route.extend({ actions: { openLayer() { - this.render('layer', { - into: 'application', - outlet: 'modal', - }); + expectDeprecation(() => { + this.render('layer', { + into: 'application', + outlet: 'modal', + }); + }, 'Usage of `render` is deprecated.'); }, close() { expectDeprecation( @@ -1328,7 +1371,10 @@ moduleFor( 'route:root', Route.extend({ renderTemplate() { - this.render('exports/root'); + expectDeprecation( + () => this.render('exports/root'), + 'Usage of `render` is deprecated.' + ); }, }) ); @@ -1337,7 +1383,10 @@ moduleFor( 'route:root.index', Route.extend({ renderTemplate() { - this.render('exports/index'); + expectDeprecation( + () => this.render('exports/index'), + 'Usage of `render` is deprecated.' + ); }, }) ); @@ -1360,10 +1409,12 @@ moduleFor( Route.extend({ actions: { openLayer() { - this.render('layer', { - into: 'application', - outlet: 'modal', - }); + expectDeprecation(() => { + this.render('layer', { + into: 'application', + outlet: 'modal', + }); + }, 'Usage of `render` is deprecated.'); }, }, }) @@ -1480,10 +1531,12 @@ moduleFor( Route.extend({ actions: { showModal() { - this.render({ - outlet: undefined, - parentView: 'application', - }); + expectDeprecation(() => { + this.render({ + outlet: undefined, + parentView: 'application', + }); + }, 'Usage of `render` is deprecated.'); }, hideModal() { expectDeprecation( diff --git a/tests/docs/expected.js b/tests/docs/expected.js index 6b265de0ec7..fc22bb4f85a 100644 --- a/tests/docs/expected.js +++ b/tests/docs/expected.js @@ -49,6 +49,7 @@ module.exports = { '_qpChanged', '_qpDelegate', '_queryParamsFor', + '_render', '_renderMode', '_resolveCache', '_serializeQueryParam', From 7765a6758be8b8473f06d41bd02914b904485d70 Mon Sep 17 00:00:00 2001 From: Pat O'Callaghan Date: Tue, 2 Mar 2021 21:24:48 +0000 Subject: [PATCH 2/2] Use symbol to create private render method --- .../application/debug-render-tree-test.ts | 4 +- .../integration/application/rendering-test.js | 8 +-- .../-internals/routing/lib/system/route.ts | 15 +++-- .../ember/tests/routing/model_loading_test.js | 2 +- .../tests/routing/template_rendering_test.js | 66 +++++++++---------- tests/docs/expected.js | 2 +- 6 files changed, 48 insertions(+), 49 deletions(-) diff --git a/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts b/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts index 06dad4a0d4c..85f9683711c 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts +++ b/packages/@ember/-internals/glimmer/tests/integration/application/debug-render-tree-test.ts @@ -222,12 +222,12 @@ if (ENV._DEBUG_RENDER_TREE) { } renderTemplate(_: Controller, { showHeader }: Model): void { - expectDeprecation(() => this.render(), 'Usage of `render` is deprecated.'); + expectDeprecation(() => this.render(), /Usage of `render` is deprecated/); if (showHeader) { expectDeprecation( () => this.render('header', { outlet: 'header' }), - 'Usage of `render` is deprecated.' + /Usage of `render` is deprecated/ ); } else { expectDeprecation( diff --git a/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js b/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js index 9dd92db4210..2198da8943c 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/application/rendering-test.js @@ -470,7 +470,7 @@ moduleFor( into: 'application', outlet: 'nav', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }) ); @@ -617,7 +617,7 @@ moduleFor( renderTemplate(controller, model) { expectDeprecation( () => this.render({ controller: model.color, model }), - 'Usage of `render` is deprecated.' + /Usage of `render` is deprecated/ ); }, }) @@ -666,7 +666,7 @@ moduleFor( renderTemplate(controller, model) { expectDeprecation( () => this.render('common', { controller: 'common', model }), - 'Usage of `render` is deprecated.' + /Usage of `render` is deprecated/ ); }, }) @@ -682,7 +682,7 @@ moduleFor( renderTemplate(controller, model) { expectDeprecation( () => this.render('common', { controller: 'common', model }), - 'Usage of `render` is deprecated.' + /Usage of `render` is deprecated/ ); }, }) diff --git a/packages/@ember/-internals/routing/lib/system/route.ts b/packages/@ember/-internals/routing/lib/system/route.ts index f50dc5a9d72..7e2c3474173 100644 --- a/packages/@ember/-internals/routing/lib/system/route.ts +++ b/packages/@ember/-internals/routing/lib/system/route.ts @@ -20,7 +20,7 @@ import { Object as EmberObject, typeOf, } from '@ember/-internals/runtime'; -import { isProxy, lookupDescriptor } from '@ember/-internals/utils'; +import { isProxy, lookupDescriptor, symbol } from '@ember/-internals/utils'; import Controller from '@ember/controller'; import { assert, deprecate, info, isTesting } from '@ember/debug'; import { ROUTER_EVENTS } from '@ember/deprecated-features'; @@ -49,6 +49,7 @@ import generateController from './generate_controller'; import EmberRouter, { QueryParam } from './router'; export const ROUTE_CONNECTIONS = new WeakMap(); +const RENDER = symbol('render') as string; export function defaultSerialize( model: {}, @@ -1486,10 +1487,10 @@ class Route extends EmberObject implements IRoute { } /** - `_render` is used to render a template into a region of another template + `this[RENDER]` is used to render a template into a region of another template (indicated by an `{{outlet}}`). - @method _render + @method this[RENDER] @param {String} name the name of the template to render @param {Object} [options] the options @param {String} [options.into] the template to render into, @@ -1502,7 +1503,7 @@ class Route extends EmberObject implements IRoute { Defaults to the return value of the Route's model hook @private */ - _render(name?: string, options?: PartialRenderOptions) { + [RENDER](name?: string, options?: PartialRenderOptions) { let renderOptions = buildRenderOptions(this, name, options); ROUTE_CONNECTIONS.get(this).push(renderOptions); once(this._router, '_setOutlets'); @@ -1544,7 +1545,7 @@ class Route extends EmberObject implements IRoute { */ renderTemplate(_controller: any, _model: {}) { // eslint-disable-line no-unused-vars - this._render(); + this[RENDER](); } /** @@ -1675,7 +1676,7 @@ class Route extends EmberObject implements IRoute { @public */ render(name?: string, options?: PartialRenderOptions) { - deprecate('Usage of `render` is deprecated.', false, { + deprecate(`Usage of \`render\` is deprecated. Route: \`${this.routeName}\``, false, { id: 'route-render-template', until: '4.0.0', url: 'https://deprecations.emberjs.com/v3.x/#toc_route-render-template', @@ -1684,7 +1685,7 @@ class Route extends EmberObject implements IRoute { enabled: '3.27.0', }, }); - this._render(name, options); + this[RENDER](name, options); } /** diff --git a/packages/ember/tests/routing/model_loading_test.js b/packages/ember/tests/routing/model_loading_test.js index ca93c5717cb..0f71d5c5fe1 100644 --- a/packages/ember/tests/routing/model_loading_test.js +++ b/packages/ember/tests/routing/model_loading_test.js @@ -216,7 +216,7 @@ moduleFor( renderTemplate() { expectDeprecation( () => this.render('alternative_home'), - 'Usage of `render` is deprecated.' + /Usage of `render` is deprecated/ ); }, }) diff --git a/packages/ember/tests/routing/template_rendering_test.js b/packages/ember/tests/routing/template_rendering_test.js index 34cff663e5f..f33f0c72dfc 100644 --- a/packages/ember/tests/routing/template_rendering_test.js +++ b/packages/ember/tests/routing/template_rendering_test.js @@ -76,7 +76,7 @@ moduleFor( 'route:home', Route.extend({ renderTemplate() { - expectDeprecation(() => this.render('homepage'), 'Usage of `render` is deprecated.'); + expectDeprecation(() => this.render('homepage'), /Usage of `render` is deprecated/); }, }) ); @@ -93,7 +93,7 @@ moduleFor( 'route:home', Route.extend({ renderTemplate() { - expectDeprecation(() => this.render('homepage'), 'Usage of `render` is deprecated.'); + expectDeprecation(() => this.render('homepage'), /Usage of `render` is deprecated/); }, }) ); @@ -121,7 +121,7 @@ moduleFor( Route.extend({ controllerName: 'foo', renderTemplate() { - expectDeprecation(() => this.render('homepage'), 'Usage of `render` is deprecated.'); + expectDeprecation(() => this.render('homepage'), /Usage of `render` is deprecated/); }, }) ); @@ -161,7 +161,7 @@ moduleFor( renderTemplate() { expectDeprecation( () => this.render({ controller: 'home' }), - 'Usage of `render` is deprecated.' + /Usage of `render` is deprecated/ ); }, }) @@ -202,7 +202,7 @@ moduleFor( 'route:home', Route.extend({ renderTemplate() { - expectDeprecation(() => this.render('homepage'), 'Usage of `render` is deprecated.'); + expectDeprecation(() => this.render('homepage'), /Usage of `render` is deprecated/); }, }) ); @@ -226,7 +226,7 @@ moduleFor( this.render('bio', { model: { name: 'emberjs' }, }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }) ); @@ -276,7 +276,7 @@ moduleFor( into: 'home', outlet: 'alert', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }, }) @@ -306,7 +306,7 @@ moduleFor( Route.extend({ templateName: 'alert', renderTemplate() { - expectDeprecation(() => this.render({}), 'Usage of `render` is deprecated.'); + expectDeprecation(() => this.render({}), /Usage of `render` is deprecated/); }, }) ); @@ -429,7 +429,7 @@ moduleFor( renderTemplate() { expectDeprecation( () => this.render('middle/bottom', { into: 'top' }), - 'Usage of `render` is deprecated.' + /Usage of `render` is deprecated/ ); }, }) @@ -467,7 +467,7 @@ moduleFor( expectDeprecation(() => { this.render('person/profile'); this.render('person/details', { into: 'person/profile' }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }) ); @@ -503,7 +503,7 @@ moduleFor( into: 'application', outlet: 'menu', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }) ); @@ -653,7 +653,7 @@ moduleFor( renderTemplate() { expectDeprecation( () => this.render('shared', { controller: 'shared' }), - 'Usage of `render` is deprecated.' + /Usage of `render` is deprecated/ ); }, }); @@ -736,7 +736,7 @@ moduleFor( into: 'application', outlet: 'footer', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }) ); @@ -806,7 +806,7 @@ moduleFor( into: 'application', outlet: 'modal', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, hideModal() { expectDeprecation( @@ -831,7 +831,7 @@ moduleFor( this.render('posts/extra', { into: 'posts/index', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, hideExtra() { expectDeprecation( @@ -940,7 +940,7 @@ moduleFor( into: 'application', outlet: 'modal', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, hideModal() { expectDeprecation( @@ -1017,7 +1017,7 @@ moduleFor( showModal() { expectDeprecation( () => this.render('modal', { into: 'posts', outlet: 'modal' }), - 'Usage of `render` is deprecated.' + /Usage of `render` is deprecated/ ); }, hideModal() { @@ -1040,9 +1040,10 @@ moduleFor( } ['@test Specifying non-existent controller name in route#render throws'](assert) { - expectDeprecation('Usage of `renderTemplate` is deprecated.'); - expectDeprecation('Usage of `render` is deprecated.'); - assert.expect(3); + expectDeprecation( + /(Usage of `renderTemplate` is deprecated|Usage of `render` is deprecated)/ + ); + assert.expect(2); this.router.map(function () { this.route('home', { path: '/' }); @@ -1109,7 +1110,7 @@ moduleFor( into: 'application', outlet: 'other', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }) ); @@ -1142,7 +1143,7 @@ moduleFor( into: 'application', outlet: 'other', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, actions: { banish() { @@ -1192,7 +1193,7 @@ moduleFor( into: 'application', outlet: 'other', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }) ); @@ -1220,7 +1221,7 @@ moduleFor( into: 'application', outlet: 'other', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }, }) @@ -1267,7 +1268,7 @@ moduleFor( outlet: 'common', into: 'app', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }) ); @@ -1281,7 +1282,7 @@ moduleFor( outlet: 'sub', into: 'app', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }) ); @@ -1328,7 +1329,7 @@ moduleFor( into: 'application', outlet: 'modal', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, close() { expectDeprecation( @@ -1371,10 +1372,7 @@ moduleFor( 'route:root', Route.extend({ renderTemplate() { - expectDeprecation( - () => this.render('exports/root'), - 'Usage of `render` is deprecated.' - ); + expectDeprecation(() => this.render('exports/root'), /Usage of `render` is deprecated/); }, }) ); @@ -1385,7 +1383,7 @@ moduleFor( renderTemplate() { expectDeprecation( () => this.render('exports/index'), - 'Usage of `render` is deprecated.' + /Usage of `render` is deprecated/ ); }, }) @@ -1414,7 +1412,7 @@ moduleFor( into: 'application', outlet: 'modal', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, }, }) @@ -1536,7 +1534,7 @@ moduleFor( outlet: undefined, parentView: 'application', }); - }, 'Usage of `render` is deprecated.'); + }, /Usage of `render` is deprecated/); }, hideModal() { expectDeprecation( diff --git a/tests/docs/expected.js b/tests/docs/expected.js index fc22bb4f85a..33df88a6323 100644 --- a/tests/docs/expected.js +++ b/tests/docs/expected.js @@ -49,7 +49,6 @@ module.exports = { '_qpChanged', '_qpDelegate', '_queryParamsFor', - '_render', '_renderMode', '_resolveCache', '_serializeQueryParam', @@ -557,6 +556,7 @@ module.exports = { 'testing', 'textarea', 'then', + 'this[RENDER]', 'throttle', 'title', 'to',