From 8b3f610df657c13b42e998c05e1b70a9fd22980b Mon Sep 17 00:00:00 2001 From: Robert Jackson Date: Sat, 29 Apr 2017 22:26:45 -0400 Subject: [PATCH] [BUGFIX beta] Ensure `factoryFor` does validation. --- packages/container/lib/container.js | 4 ++++ .../ember-runtime/tests/controllers/controller_test.js | 6 ++---- packages/ember-runtime/tests/inject_test.js | 8 ++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/container/lib/container.js b/packages/container/lib/container.js index 9cb84d398b5..07c5e8342b9 100644 --- a/packages/container/lib/container.js +++ b/packages/container/lib/container.js @@ -166,6 +166,10 @@ Container.prototype = { return; } + if (DEBUG && factory && typeof factory._onLookup === 'function') { + factory._onLookup(fullName); + } + let manager = new FactoryManager(this, factory, fullName, normalizedName); if (DEBUG) { diff --git a/packages/ember-runtime/tests/controllers/controller_test.js b/packages/ember-runtime/tests/controllers/controller_test.js index 6e6b5e5c447..8ea64577180 100644 --- a/packages/ember-runtime/tests/controllers/controller_test.js +++ b/packages/ember-runtime/tests/controllers/controller_test.js @@ -159,12 +159,10 @@ if (!EmberDev.runningProdBuild) { foo: inject.controller('bar') }); + owner.register('controller:bar', EmberObject.extend()); owner.register('foo:main', AnObject); - expectDeprecation(() => { - owner._lookupFactory('foo:main'); - }, /Using "_lookupFactory" is deprecated. Please use container.factoryFor instead./); - + owner.lookup('foo:main'); }, /Defining an injected controller property on a non-controller is not allowed./); }); } diff --git a/packages/ember-runtime/tests/inject_test.js b/packages/ember-runtime/tests/inject_test.js index a7289fa1d2a..91fdc25ce86 100644 --- a/packages/ember-runtime/tests/inject_test.js +++ b/packages/ember-runtime/tests/inject_test.js @@ -32,11 +32,11 @@ if (!EmberDev.runningProdBuild) { }); owner.register('foo:main', AnObject); + owner.register('foo:bar', EmberObject.extend()); + owner.register('foo:baz', EmberObject.extend()); - expect(2); - expectDeprecation(() => { - owner._lookupFactory('foo:main'); - }, /Using "_lookupFactory" is deprecated. Please use container.factoryFor instead./); + expect(1); + owner.lookup('foo:main'); }); QUnit.test('attempting to inject a nonexistent container key should error', function() {