diff --git a/addon/resolvers/classic/index.js b/addon/resolvers/classic/index.js index a168e9bf..a02ed7df 100644 --- a/addon/resolvers/classic/index.js +++ b/addon/resolvers/classic/index.js @@ -45,17 +45,18 @@ function parseName(fullName) { let prefix, type, name; let fullNameParts = fullName.split('@'); - // HTMLBars uses helper:@content-helper which collides - // with ember-cli namespace detection. - // This will be removed in a future release of HTMLBars. - if (fullName !== 'helper:@content-helper' && - fullNameParts.length === 2) { + if (fullNameParts.length === 2) { let prefixParts = fullNameParts[0].split(':'); if (prefixParts.length === 2) { - prefix = prefixParts[1]; - type = prefixParts[0]; - name = fullNameParts[1]; + if (prefixParts[1].length === 0) { + type = prefixParts[0]; + name = `@${fullNameParts[1]}`; + } else { + prefix = prefixParts[1]; + type = prefixParts[0]; + name = fullNameParts[1]; + } } else { let nameParts = fullNameParts[1].split(':'); diff --git a/tests/unit/resolvers/classic/basic-test.js b/tests/unit/resolvers/classic/basic-test.js index 5ccce04e..97e3b158 100644 --- a/tests/unit/resolvers/classic/basic-test.js +++ b/tests/unit/resolvers/classic/basic-test.js @@ -206,6 +206,22 @@ test('can lookup an engine', function(assert) { assert.equal(engine, expected, 'default export was returned'); }); +test('can lookup an engine from a scoped package', function(assert) { + assert.expect(3); + + let expected = {}; + define('@some-scope/some-module/engine', [], function(){ + assert.ok(true, "engine was invoked properly"); + + return { default: expected }; + }); + + var engine = resolver.resolve('engine:@some-scope/some-module'); + + assert.ok(engine, 'engine was returned'); + assert.equal(engine, expected, 'default export was returned'); +}); + test('can lookup a route-map', function(assert) { assert.expect(3);