1 | /* global require */
|
2 | import EmberResolver from 'ember-resolver';
|
3 |
|
4 | /**
|
5 | * Gets the resolver class used by an Engine and creates an instance to be used
|
6 | * with test modules. Ex:
|
7 | *
|
8 | * moduleForComponent('some-component', 'Integration Test', {
|
9 | * resolver: engineResolverFor('ember-blog')
|
10 | * });
|
11 | *
|
12 | * Uses the module found at `<engine-name>/resolver` as the class. If no module
|
13 | * exists at that path, then a default EmberResolver instance is created.
|
14 | *
|
15 | * You can optionally specify a modulePrefix in the event that the modulePrefix
|
16 | * differs from the engineName.
|
17 | *
|
18 | * You can optionally specify a podModulePrefix in the event that you're using
|
19 | * the pods structure.
|
20 | *
|
21 | * @method engineResolverFor
|
22 | * @param {String} engineName
|
23 | * @param {String} [modulePrefix]
|
24 | * @param {String} [podModulePrefix]
|
25 | * @return {Resolver}
|
26 | */
|
27 | export default function engineResolverFor(
|
28 | engineName,
|
29 | modulePrefix = engineName,
|
30 | podModulePrefix = undefined
|
31 | ) {
|
32 | let Resolver;
|
33 |
|
34 | if (require.has(`${engineName}/resolver`)) {
|
35 | Resolver = require(`${engineName}/resolver`).default;
|
36 | } else {
|
37 | Resolver = EmberResolver;
|
38 | }
|
39 | return Resolver.create({ namespace: { modulePrefix, podModulePrefix } });
|
40 | }
|