Fix(generate): Add error message for blueprints that do not exist. Throw error for the caller to respond to. Update test to have invalid generator error thrown

This commit is contained in:
jbavari
2015-11-02 15:40:00 -07:00
parent 5350aca81a
commit 5c79084920
3 changed files with 16 additions and 2 deletions

View File

@ -36,6 +36,10 @@ Generate.generate = function generate(options) {
options.generatorName = 'page';
}
if (!Generate.generators[options.generatorName]) {
throw new Error('There is no generator available with that name: ' + options.generatorName + '.');
}
var generateOptions = {
appDirectory: options.appDirectory,
cssClassName: Generate.cssClassName(options.name),
@ -117,7 +121,8 @@ Generate.loadGenerators = function loadGenerators() {
return;
}
var generatorName = file.replace('.js', '');
generators[generatorName] = Generate.loadGenerator(generatorName);
var generator = Generate.loadGenerator(generatorName);
generators[generatorName] = generator;
});
return generators;
};

View File

@ -1,3 +1,5 @@
var Generate = require('./generate');
module.exports = {
generate: require('./generate').generate
Generate: Generate,
generate: Generate.generate
};

View File

@ -34,6 +34,13 @@ describe('#Generate', function() {
expect(Generate.generate).toThrow('No options passed to generator');
});
it('should throw an error trying to use a generator that does not exist', function() {
var generatorOptions = { appDirectory: '/fake/ionic/path', name: 'About', generatorName: 'tabz' };
expect(function() {
Generate.generate(generatorOptions);
}).toThrow('There is no generator available with that name: tabz.');
});
it('should call the appropriate generator', function() {
spyOn(Generate, 'createScaffoldDirectories');
var generatorOptions = { appDirectory: '/fake/ionic/path', name: 'About', generatorName: 'page' };