Socket
Socket
Sign inDemoInstall

ember-cli-addon-tests

Package Overview
Dependencies
Maintainers
3
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ember-cli-addon-tests - npm Package Compare versions

Comparing version 0.3.0 to 0.4.0

.idea/copyright/profiles_settings.xml

2

lib/models/addon-test-app.js

@@ -25,3 +25,3 @@ var fs = require('fs-extra');

return pristine.cloneApp(appName)
return pristine.cloneApp(appName, options)
.then(function(appPath) {

@@ -28,0 +28,0 @@ app.path = appPath;

@@ -10,3 +10,2 @@ "use strict";

var existsSync = fs.existsSync;
var runCommand = require('./run-command');
var RSVP = require('rsvp');

@@ -19,3 +18,3 @@ var Promise = RSVP.Promise;

function cloneApp(appName) {
function cloneApp(appName, options) {
var tempDir = temp.ensureCreated();

@@ -38,3 +37,3 @@ var previousCwd = process.cwd();

if (!fs.existsSync(pristineAppPath)) {
return installPristineApp(appName)
return installPristineApp(appName, options)
.then(function() {

@@ -59,6 +58,8 @@ copyUnderTestApp(pristineAppPath, underTestAppPath);

function installPristineApp(appName) {
function installPristineApp(appName, options) {
var hasNodeModules = hasPristineNodeModules();
var hasBowerComponents = hasPristineBowerComponents();
var extraOptions = [];
var emberVersion = options.emberVersion || 'canary';
var emberDataVersion = options.emberDataVersion || 'emberjs/data#master';

@@ -74,7 +75,7 @@ // First, determine if we can skip installing npm packages

} else if (!hasNodeModules && hasBowerComponents) {
debug("no node_modules but existng bower_components");
debug("no node_modules but existing bower_components");
extraOptions = ['--skip-bower'];
// node_modules but no bower_components
} else if (hasNodeModules && !hasBowerComponents) {
debug("no bower_components but existng node_modules");
debug("no bower_components but existing node_modules");
extraOptions = ['--skip-npm'];

@@ -94,3 +95,3 @@ // Everything is already there

})
.then(addEmberDataCanaryToDependencies(appName));
.then(addEmberDataToDependencies(appName, emberDataVersion));

@@ -111,10 +112,10 @@ // If we installed a fresh node_modules or bower_components directory,

.then(function() {
debug('installed ember-data canary');
debug('installed ember-data ' + emberDataVersion);
})
.then(movePristineNodeModules(appName))
.then(symlinkAddon);
.then(symlinkAddon(appName));
}
promise = promise.then(addEmberCanaryToBowerJSON(appName))
.then(removeEmberDataFromBowerJSON(appName));
promise = promise.then(addEmberToBowerJSON(appName, emberVersion))
.then(removeEmberDataFromBowerJSON(appName))
.then(addAddonUnderTestToDependencies(appName));

@@ -126,9 +127,18 @@ if (!hasBowerComponents) {

.then(function() {
debug("installed ember#canary");
})
.then(movePristineBowerComponents(appName));
debug('installed ember ' + emberVersion);
});
}
return promise.then(addAddonUnderTestToDependencies(appName))
.then(linkDependencies(appName));
// at this point we have all deps available, so we can run ember-cli
promise = promise.then(runAddonGenerator);
if (!hasNodeModules) {
promise = promise.then(movePristineNodeModules(appName));
}
if (!hasBowerComponents) {
promise = promise.then(movePristineBowerComponents(appName));
}
return promise.then(linkDependencies(appName));
}

@@ -171,3 +181,3 @@

function addEmberCanaryToBowerJSON(appName) {
function addEmberToBowerJSON(appName, version) {
return function() {

@@ -178,6 +188,6 @@ var bowerJSONPath = path.join(temp.pristinePath, appName, 'bower.json');

bowerJSON.resolutions = {
"ember": "canary"
"ember": version
};
bowerJSON.dependencies['ember'] = 'canary';
bowerJSON.dependencies['ember'] = version;

@@ -199,23 +209,25 @@ fs.writeJsonSync(bowerJSONPath, bowerJSON);

function symlinkAddon() {
var pkg = findAddonPackageJSON();
var addonPath = findAddonPath();
var addonSymlinkPath = path.join(temp.pristineNodeModulesPath, pkg.name);
function symlinkAddon(appName) {
return function() {
var pkg = findAddonPackageJSON();
var addonPath = findAddonPath();
var addonSymlinkPath = path.join(temp.pristinePath, appName, 'node_modules', pkg.name);
debug("symlinking %s", pkg.name);
debug("symlinking %s", pkg.name);
if (existsSync(addonSymlinkPath)) {
var stats = fs.lstatSync(addonSymlinkPath);
if (stats.isSymbolicLink()) {
debug("%s is already symlinked", pkg.name);
return;
if (existsSync(addonSymlinkPath)) {
var stats = fs.lstatSync(addonSymlinkPath);
if (stats.isSymbolicLink()) {
debug("%s is already symlinked", pkg.name);
return;
}
fs.removeSync(addonSymlinkPath);
}
fs.removeSync(addonSymlinkPath);
}
symlinkDirectory(addonPath, addonSymlinkPath);
symlinkDirectory(addonPath, addonSymlinkPath);
};
}
function addEmberDataCanaryToDependencies(appName) {
function addEmberDataToDependencies(appName, version) {
return function() {

@@ -225,7 +237,7 @@ var pkg = findAddonPackageJSON();

debug('installing ember-data canary');
debug('installing ember-data ' + version);
var packageJSON = fs.readJsonSync(packageJSONPath);
packageJSON.devDependencies['ember-data'] = 'emberjs/data#master';
packageJSON.devDependencies['ember-data'] = version;

@@ -253,2 +265,23 @@ fs.writeJsonSync('package.json', packageJSON);

function runAddonGenerator() {
var pkg = findAddonPackageJSON();
var emberCLIPath = findup('node_modules/ember-cli', {
cwd: __dirname
});
debug('running %s generator', pkg.name);
var blueprintName = pkg.name;
var emberAddon = pkg['ember-addon'];
if (emberAddon && emberAddon.defaultBlueprint) {
blueprintName = emberAddon.defaultBlueprint;
}
var args = [path.join(emberCLIPath, 'bin', 'ember'), 'generate', blueprintName];
return runCommand.apply(undefined, args)
.catch(function(){});
}
function findAddonPath() {

@@ -265,9 +298,14 @@ return path.dirname(findAddonPackageJSONPath());

function findAddonPackageJSONPath() {
var packageJSONPath = findup('package.json', {
cwd: path.join(__dirname, '../../..')
});
var lastPath;
var foundPath;
debug('found addon package.json; path=%s', packageJSONPath);
while (foundPath = findup('package.json', {
cwd: lastPath ? path.join(lastPath, '../..') : path.join(__dirname, '../../..')
})) {
lastPath = foundPath;
}
return packageJSONPath;
debug('found addon package.json; path=%s', lastPath);
return lastPath;
}

@@ -274,0 +312,0 @@

{
"name": "ember-cli-addon-tests",
"version": "0.3.0",
"version": "0.4.0",
"description": "A set of integration test helpers for Ember CLI addons",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -73,3 +73,3 @@ ## Ember CLI Addon Tests

See the [ember-cli-fastboot acceptance tests](https://github.com/tildeio/ember-cli-fastboot/tree/master/tests/acceptance)
See the [ember-cli-fastboot tests](https://github.com/ember-fastboot/ember-cli-fastboot/tree/master/test)
for real world examples.

@@ -98,2 +98,22 @@

#### Options
You can customize the app by supplying an options hash:
```js
// returns a promise
app.create('my-app', {
emberVersion: 'release'
});
```
The following options exist:
| option | description | defaults to |
|------------------|-----------------------------------------------------------------------------------------|---------------------|
| emberVersion | Set the ember version the app should be created with, as you would in your `bower.json` | canary |
| emberDataVersion | Set the version of ember-data, as you would in your `package.json` | emberjs/data#master |
| fixturesPath | The path to look for your fixture files (see below) | test/fixtures |
#### Fixtures

@@ -100,0 +120,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc