UNPKG

1.2 kBJavaScriptView Raw
1/* global require */
2import 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 */
27export 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}