diff --git a/lib/models/addon-test-app.js b/lib/models/addon-test-app.js index e86cae4..eee5c86 100644 --- a/lib/models/addon-test-app.js +++ b/lib/models/addon-test-app.js @@ -32,6 +32,11 @@ AddonTestApp.prototype.create = function(appName, options) { .then(() => this); }; +AddonTestApp.prototype.link = function(appName) { + return pristine.link(appName) + .then(() => this); +}; + AddonTestApp.prototype.editPackageJSON = function(cb) { let packageJSONPath = path.join(this.path, 'package.json'); let pkg = fs.readJsonSync(packageJSONPath); diff --git a/lib/utilities/pristine.js b/lib/utilities/pristine.js index cfac567..18610df 100644 --- a/lib/utilities/pristine.js +++ b/lib/utilities/pristine.js @@ -63,13 +63,22 @@ function createApp(appName, options) { return appInstallation.then(() => { copyUnderTestApp(pristineAppPath, underTestAppPath); + return link(appName); + }).then(() => { chdir(previousCwd); return underTestAppPath; }); } +function link(appName) { + return Promise.resolve() + .then(() => linkDependencies(appName)) + .then(runAddonGenerator); +} + module.exports = { - createApp + createApp, + link }; function installPristineApp(appName, options) { @@ -108,9 +117,7 @@ function installPristineApp(appName, options) { // All dependencies should be installed, so symlink them into the app and // run the addon's blueprint to finish the app creation. - return promise - .then(() => linkDependencies(appName)) - .then(runAddonGenerator); + return promise; } // Generates the arguments to pass to `ember new`. Optionally skipping the