From 6e84d23a1878ac53a2da3b56a4e572ef7c954adc Mon Sep 17 00:00:00 2001 From: simonihmig Date: Sun, 27 Jan 2019 13:09:34 +0100 Subject: [PATCH] Add deprecation for this.$ in rendering tests As per RFC386 --- .../@ember/test-helpers/setup-rendering-context.ts | 12 ++++++++++++ tests/unit/setup-rendering-context-test.js | 3 +++ 2 files changed, 15 insertions(+) diff --git a/addon-test-support/@ember/test-helpers/setup-rendering-context.ts b/addon-test-support/@ember/test-helpers/setup-rendering-context.ts index 8b07e7f88..fd0ece5dc 100644 --- a/addon-test-support/@ember/test-helpers/setup-rendering-context.ts +++ b/addon-test-support/@ember/test-helpers/setup-rendering-context.ts @@ -9,6 +9,7 @@ import settled from './settled'; import hbs, { TemplateFactory } from 'htmlbars-inline-precompile'; import getRootElement from './dom/get-root-element'; import { Owner } from './build-owner'; +import { deprecate } from '@ember/application/deprecations'; export const RENDERING_CLEANUP = Object.create(null); const OUTLET_TEMPLATE = hbs`{{outlet}}`; @@ -53,6 +54,17 @@ function lookupOutletTemplate(owner: Owner): any { @returns {jQuery} a jQuery object representing the selector (or element itself if no selector) */ function jQuerySelector(selector: string): any { + deprecate( + 'Using this.$() in a rendering test has been deprecated, consider using this.element instead.', + false, + { + id: 'ember-test-helpers.rendering-context.jquery-element', + until: '2.0.0', + // @ts-ignore + url: 'https://emberjs.com/deprecations/v3.x#toc_jquery-apis', + } + ); + let { element } = getContext() as RenderingTestContext; // emulates Ember internal behavor of `this.$` in a component diff --git a/tests/unit/setup-rendering-context-test.js b/tests/unit/setup-rendering-context-test.js index 824993c47..2fa4521a6 100644 --- a/tests/unit/setup-rendering-context-test.js +++ b/tests/unit/setup-rendering-context-test.js @@ -128,6 +128,9 @@ module('setupRenderingContext', function(hooks) { await this.render(hbs`

Hello!

`); assert.equal(this.$().text(), 'Hello!'); + assert.deprecationsInclude( + 'Using this.$() in a rendering test has been deprecated, consider using this.element instead.' + ); }); test('can invoke template only components', async function(assert) {