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',