diff --git a/lib/dependency-manager-adapters/bower.js b/lib/dependency-manager-adapters/bower.js index 7aa41495..893531fe 100644 --- a/lib/dependency-manager-adapters/bower.js +++ b/lib/dependency-manager-adapters/bower.js @@ -32,11 +32,6 @@ module.exports = CoreObject.extend({ return RSVP.resolve(); } }, - _getDependencySet(depSet) { - if (depSet[this.configKey]) { - return depSet[this.configKey]; - } - }, _writeBowerFileWithDepSetChanges(depSet) { let adapter = this; let baseBowerJSON; @@ -70,7 +65,6 @@ module.exports = CoreObject.extend({ changeToDependencySet(depSet) { let adapter = this; - depSet = this._getDependencySet(depSet); debug('Changing to dependency set: %s', JSON.stringify(depSet)); diff --git a/lib/dependency-manager-adapters/npm.js b/lib/dependency-manager-adapters/npm.js index bcbfb674..a3431b04 100644 --- a/lib/dependency-manager-adapters/npm.js +++ b/lib/dependency-manager-adapters/npm.js @@ -109,7 +109,6 @@ module.exports = CoreObject.extend({ }); }, applyDependencySet(depSet) { - depSet = depSet[this.configKey]; debug('Changing to dependency set: %s', JSON.stringify(depSet)); diff --git a/lib/dependency-manager-adapters/workspace.js b/lib/dependency-manager-adapters/workspace.js index 83130dac..baa60566 100644 --- a/lib/dependency-manager-adapters/workspace.js +++ b/lib/dependency-manager-adapters/workspace.js @@ -54,6 +54,7 @@ module.exports = CoreObject.extend({ }, changeToDependencySet(depSet) { + // TODO: What should this do for tables? Nesting? Needs different output this._packageAdapters.forEach(adapter => { adapter.applyDependencySet(depSet); }); diff --git a/lib/utils/scenario-manager.js b/lib/utils/scenario-manager.js index dad4d1ef..2c3800f9 100644 --- a/lib/utils/scenario-manager.js +++ b/lib/utils/scenario-manager.js @@ -26,7 +26,10 @@ module.exports = CoreObject.extend({ changeTo(scenario) { return mapSeries(this.dependencyManagerAdapters, (depManager) => { - return depManager.changeToDependencySet(scenario); + if (scenario[depManager.configKey]) { + return depManager.changeToDependencySet(scenario[depManager.configKey]); + } + return RSVP.resolve([]); }).then((results) => { return RSVP.resolve([].concat.apply([], results)); }); diff --git a/test/dependency-manager-adapters/bower-adapter-test.js b/test/dependency-manager-adapters/bower-adapter-test.js index 4a65a306..34cb13e5 100644 --- a/test/dependency-manager-adapters/bower-adapter-test.js +++ b/test/dependency-manager-adapters/bower-adapter-test.js @@ -57,7 +57,7 @@ describe('bowerAdapter', () => { }); }); - it('if bower dependencies in dep set, they install is run', () => { + it('if bower dependencies in dep set, then install is run', () => { let stubbedRunRan = false; let stubbedRun = function(command, args, opts) { expect(command).to.equal('node'); @@ -72,7 +72,7 @@ describe('bowerAdapter', () => { let adapter = new BowerAdapter({ cwd: tmpdir, run: stubbedRun }); return adapter.setup() .then(() => { - return adapter.changeToDependencySet({ bower: { dependencies: { 'ember': '*' } } }); + return adapter.changeToDependencySet({ dependencies: { 'ember': '*' } }); }) .then(() => { expect(stubbedRunRan).to.equal(true); diff --git a/test/dependency-manager-adapters/workspace-adapter-test.js b/test/dependency-manager-adapters/workspace-adapter-test.js index 7786b064..e145aa33 100644 --- a/test/dependency-manager-adapters/workspace-adapter-test.js +++ b/test/dependency-manager-adapters/workspace-adapter-test.js @@ -160,9 +160,7 @@ describe('workspaceAdapter', () => { it('changes specified dependency versions', () => { return workspaceAdapter.changeToDependencySet({ - npm: { - dependencies: { 'ember-cli-babel': '6.0.0' }, - }, + dependencies: { 'ember-cli-babel': '6.0.0' }, }).then(() => { assertFileContainsJSON(path.join(tmpdir, 'packages/test/package.json'), { devDependencies: { 'ember-feature-flags': '1.0.0' }, @@ -175,9 +173,7 @@ describe('workspaceAdapter', () => { it('changes specified npm dev dependency versions', () => { return workspaceAdapter.changeToDependencySet({ - npm: { - devDependencies: { 'ember-feature-flags': '2.0.1' }, - }, + devDependencies: { 'ember-feature-flags': '2.0.1' }, }).then(() => { assertFileContainsJSON(path.join(tmpdir, 'packages/test/package.json'), { devDependencies: { 'ember-feature-flags': '2.0.1' }, @@ -190,9 +186,7 @@ describe('workspaceAdapter', () => { it('changes specified npm peer dependency versions', () => { return workspaceAdapter.changeToDependencySet({ - npm: { - peerDependencies: { 'ember-cli-sass': '4.5.6' }, - }, + peerDependencies: { 'ember-cli-sass': '4.5.6' }, }).then(() => { assertFileContainsJSON(path.join(tmpdir, 'packages/test/package.json'), { devDependencies: { 'ember-feature-flags': '1.0.0' }, @@ -205,9 +199,7 @@ describe('workspaceAdapter', () => { it('changes specified resolution versions', () => { return workspaceAdapter.changeToDependencySet({ - npm: { - resolutions: { 'ember-data': '3.5.0' }, - }, + resolutions: { 'ember-data': '3.5.0' }, }).then(() => { assertFileContainsJSON('packages/test/package.json', { devDependencies: { 'ember-feature-flags': '1.0.0' }, @@ -220,9 +212,7 @@ describe('workspaceAdapter', () => { it('can remove a package', () => { return workspaceAdapter.changeToDependencySet({ - npm: { - devDependencies: { 'ember-feature-flags': null }, - }, + devDependencies: { 'ember-feature-flags': null }, }).then(() => { assertFileContainsJSON(path.join(tmpdir, 'packages/test/package.json'), { devDependencies: {}, diff --git a/test/tasks/try-each-test.js b/test/tasks/try-each-test.js index 34c06885..045c8d53 100644 --- a/test/tasks/try-each-test.js +++ b/test/tasks/try-each-test.js @@ -154,6 +154,28 @@ describe('tryEach', () => { expect(output).to.include('Scenario first: SUCCESS'); expect(output).to.include('Scenario second: SUCCESS'); expect(output).to.include('Scenario with-bower-resolutions: SUCCESS'); + + let tables = output.filter((line) => { + return typeof line === "object"; + }); + + expect(tables[0]).to.eql([ + [ 'ember-cli-deploy', '0.5.0', '0.5.0', 'npm'], + [ 'ember', '1.13.0', '1.13.0', 'bower' ], + [ 'bootstrap', 'Not Installed', 'Not Installed', 'bower' ] + ]); + + expect(tables[1]).to.eql([ + [ 'ember-cli-deploy', '0.5.1', '0.5.1', 'npm'], + [ 'ember', '2.0.0', '2.0.0', 'bower' ], + [ 'jquery', '1.11.3', '1.11.3', 'bower' ] + ]); + + expect(tables[2]).to.eql([ + [ 'ember-cli-deploy', '0.5.1', '0.5.1', 'npm'], + [ 'ember', 'components/ember#beta', '3.0.0-beta.2-beta+b4135dfe', 'bower' ] + ]); + expect(output).to.include('All 3 scenarios succeeded'); }); }); diff --git a/test/utils/scenario-manager-test.js b/test/utils/scenario-manager-test.js index 3849c481..03b1484a 100644 --- a/test/utils/scenario-manager-test.js +++ b/test/utils/scenario-manager-test.js @@ -35,11 +35,13 @@ describe('scenarioManager', () => { it('changes dependency sets on each of the managers, in order, and concats results', () => { let fakeAdapters = [ new CoreObject({ + configKey: 'adapterA', changeToDependencySet() { return RSVP.resolve(['a', 'b', 'r']); }, }), new CoreObject({ + configKey: 'adapterB', changeToDependencySet() { return RSVP.resolve(['u', 'q', 'a']); }, @@ -47,7 +49,7 @@ describe('scenarioManager', () => { ]; let manager = new ScenarioManager({ dependencyManagerAdapters: fakeAdapters }); - return manager.changeTo({}).then((results) => { + return manager.changeTo({ adapterA: {}, adapterB: {} }).then((results) => { expect(results).to.eql(['a', 'b', 'r', 'u', 'q', 'a']); }); });