Skip to content

Commit 4317fd1

Browse files
authored
Merge pull request #1291 from emberjs/remove-deprecations
Remove deprecations targeting v3.0.0
2 parents 5e5b11c + 45cac44 commit 4317fd1

2 files changed

Lines changed: 18 additions & 88 deletions

File tree

addon-test-support/@ember/test-helpers/setup-rendering-context.ts

Lines changed: 18 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,26 @@ const OUTLET_TEMPLATE = hbs`{{outlet}}`;
2727
const EMPTY_TEMPLATE = hbs``;
2828
const INVOKE_PROVIDED_COMPONENT = hbs`<this.ProvidedComponent />`;
2929

30-
export interface RenderingTestContext extends TestContext {
31-
render(template: TemplateFactory): Promise<void>;
32-
clearRender(): Promise<void>;
30+
const hasCalledSetupRenderingContext = Symbol();
3331

32+
export interface RenderingTestContext extends TestContext {
3433
element: Element | Document;
34+
[hasCalledSetupRenderingContext]?: true;
35+
}
36+
37+
// Isolates the notion of transforming a TextContext into a RenderingTestContext.
38+
// eslint-disable-next-line require-jsdoc
39+
function prepare(context: TestContext): RenderingTestContext {
40+
let renderingTestContext = context as RenderingTestContext;
41+
(context as RenderingTestContext)[hasCalledSetupRenderingContext] = true;
42+
return context as RenderingTestContext;
3543
}
3644

3745
// eslint-disable-next-line require-jsdoc
3846
export function isRenderingTestContext(
3947
context: BaseContext
4048
): context is RenderingTestContext {
41-
return (
42-
isTestContext(context) &&
43-
typeof context['render'] === 'function' &&
44-
typeof context['clearRender'] === 'function'
45-
);
49+
return isTestContext(context) && hasCalledSetupRenderingContext in context;
4650
}
4751

4852
/**
@@ -293,58 +297,11 @@ export default function setupRenderingContext(
293297
let testMetadata = getTestMetadata(context);
294298
testMetadata.setupTypes.push('setupRenderingContext');
295299

300+
let renderingContext = prepare(context);
301+
296302
return Promise.resolve()
297303
.then(() => {
298-
let { owner } = context;
299-
300-
let renderDeprecationWrapper = function (template: TemplateFactory) {
301-
deprecate(
302-
'Using this.render has been deprecated, consider using `render` imported from `@ember/test-helpers`.',
303-
false,
304-
{
305-
id: 'ember-test-helpers.setup-rendering-context.render',
306-
until: '3.0.0',
307-
for: '@ember/test-helpers',
308-
since: {
309-
enabled: '2.0.0',
310-
available: '2.0.0',
311-
},
312-
}
313-
);
314-
315-
return render(template);
316-
};
317-
318-
let clearRenderDeprecationWrapper = function () {
319-
deprecate(
320-
'Using this.clearRender has been deprecated, consider using `clearRender` imported from `@ember/test-helpers`.',
321-
false,
322-
{
323-
id: 'ember-test-helpers.setup-rendering-context.clearRender',
324-
until: '3.0.0',
325-
for: '@ember/test-helpers',
326-
since: {
327-
enabled: '2.0.0',
328-
available: '2.0.0',
329-
},
330-
}
331-
);
332-
333-
return clearRender();
334-
};
335-
336-
Object.defineProperty(context, 'render', {
337-
configurable: true,
338-
enumerable: true,
339-
value: renderDeprecationWrapper,
340-
writable: false,
341-
});
342-
Object.defineProperty(context, 'clearRender', {
343-
configurable: true,
344-
enumerable: true,
345-
value: clearRenderDeprecationWrapper,
346-
writable: false,
347-
});
304+
let { owner } = renderingContext;
348305

349306
// When the host app uses `setApplication` (instead of `setResolver`) the event dispatcher has
350307
// already been setup via `applicationInstance.boot()` in `./build-owner`. If using
@@ -378,13 +335,13 @@ export default function setupRenderingContext(
378335

379336
// initially render a simple empty template
380337
return render(EMPTY_TEMPLATE).then(() => {
381-
(run as Function)(toplevelView, 'appendTo', getRootElement());
338+
run(toplevelView, 'appendTo', getRootElement());
382339

383340
return settled();
384341
});
385342
})
386343
.then(() => {
387-
Object.defineProperty(context, 'element', {
344+
Object.defineProperty(renderingContext, 'element', {
388345
configurable: true,
389346
enumerable: true,
390347
// ensure the element is based on the wrapping toplevel view
@@ -402,6 +359,6 @@ export default function setupRenderingContext(
402359
writable: false,
403360
});
404361

405-
return context as RenderingTestContext;
362+
return renderingContext;
406363
});
407364
}

tests/unit/setup-rendering-context-test.js

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,6 @@ module('setupRenderingContext', function (hooks) {
256256
assert.ok(isSettled(), 'should be settled');
257257
});
258258

259-
overwriteTest('render');
260-
overwriteTest('clearRender');
261-
262259
test('can invoke template only components', async function (assert) {
263260
await render(hbs`{{template-only}}`);
264261

@@ -899,30 +896,6 @@ module('setupRenderingContext', function (hooks) {
899896
});
900897
});
901898
}
902-
903-
module('this.render and this.clearRender deprecations', function () {
904-
test('this.render() and this.clearRender deprecation message', async function (assert) {
905-
await this.render(hbs`<button>Click me</button>`);
906-
907-
assert.expect(3);
908-
909-
assert.equal(
910-
this.element.querySelector('button').textContent.trim(),
911-
'Click me',
912-
'Button is still rendered'
913-
);
914-
915-
assert.deprecationsInclude(
916-
'Using this.render has been deprecated, consider using `render` imported from `@ember/test-helpers`.'
917-
);
918-
919-
await this.clearRender();
920-
921-
assert.deprecationsInclude(
922-
'Using this.clearRender has been deprecated, consider using `clearRender` imported from `@ember/test-helpers`.'
923-
);
924-
});
925-
});
926899
}
927900

928901
module('with only application set', function (hooks) {

0 commit comments

Comments
 (0)