diff --git a/generators/app/lib/component/eslint.js b/generators/app/lib/component/eslint.js index 5af40ee..80c22d1 100644 --- a/generators/app/lib/component/eslint.js +++ b/generators/app/lib/component/eslint.js @@ -1,6 +1,7 @@ (function () { 'use strict'; + var pkgBuilder = require('../pkg_builder'); var projectBuilder = require('../project_builder'); var yaml = require('js-yaml'); @@ -10,12 +11,17 @@ var eslintrc = {extends: 'openstack'}; /** - * No-op placeholder method, for handlers we don't need. + * This method configures the package builder with all options necessary to support eslint. * * @param {generator} generator The currently active generator. * @returns {generator} The passed generator, for promise chaining. */ - function noop (generator) { + function promptEslint (generator) { + // At this time, we don't actually need to prompt the user. + + // Add the dependencies. + pkgBuilder.addDependencies(['eslint', 'eslint-config-openstack'], 'devDependencies'); + return generator; } @@ -99,7 +105,7 @@ module.exports = { init: initializeEslint, - prompt: noop, + prompt: promptEslint, configure: configureEslint }; })(); diff --git a/spec/app/lib/component/eslint.js b/spec/app/lib/component/eslint.js index cba9b10..07a716b 100644 --- a/spec/app/lib/component/eslint.js +++ b/spec/app/lib/component/eslint.js @@ -5,6 +5,7 @@ var mockEslintIgnore = ['node_modules', 'bower_components', 'dist']; var eslint = require(libDir + '/component/eslint'); + var pkgBuilder = require(libDir + '/pkg_builder'); var projectBuilder = require(libDir + '/project_builder'); var mocks = require('../../../helpers/mocks'); var yaml = require('js-yaml'); @@ -46,11 +47,19 @@ expect(outputGenerator).toEqual(mockGenerator); }); - it('should do nothing', + it('should add eslint and eslint-config-openstack to the project', function () { - var spy = spyOn(mockGenerator, 'prompt'); + pkgBuilder.fromJSON('{"devDependencies":{}}'); + + var devDeps = pkgBuilder.getValue('devDependencies'); + expect(devDeps.eslint).not.toBeDefined(); + expect(devDeps['eslint-config-openstack']).not.toBeDefined(); + eslint.prompt(mockGenerator); - expect(spy.calls.any()).toBeFalsy(); + + devDeps = pkgBuilder.getValue('devDependencies'); + expect(devDeps.eslint).toBeDefined(); + expect(devDeps['eslint-config-openstack']).toBeDefined(); }); });