mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-19 03:32:21 +08:00
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:
@ -36,6 +36,10 @@ Generate.generate = function generate(options) {
|
|||||||
options.generatorName = 'page';
|
options.generatorName = 'page';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!Generate.generators[options.generatorName]) {
|
||||||
|
throw new Error('There is no generator available with that name: ' + options.generatorName + '.');
|
||||||
|
}
|
||||||
|
|
||||||
var generateOptions = {
|
var generateOptions = {
|
||||||
appDirectory: options.appDirectory,
|
appDirectory: options.appDirectory,
|
||||||
cssClassName: Generate.cssClassName(options.name),
|
cssClassName: Generate.cssClassName(options.name),
|
||||||
@ -117,7 +121,8 @@ Generate.loadGenerators = function loadGenerators() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var generatorName = file.replace('.js', '');
|
var generatorName = file.replace('.js', '');
|
||||||
generators[generatorName] = Generate.loadGenerator(generatorName);
|
var generator = Generate.loadGenerator(generatorName);
|
||||||
|
generators[generatorName] = generator;
|
||||||
});
|
});
|
||||||
return generators;
|
return generators;
|
||||||
};
|
};
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
var Generate = require('./generate');
|
||||||
module.exports = {
|
module.exports = {
|
||||||
generate: require('./generate').generate
|
Generate: Generate,
|
||||||
|
generate: Generate.generate
|
||||||
};
|
};
|
||||||
|
@ -34,6 +34,13 @@ describe('#Generate', function() {
|
|||||||
expect(Generate.generate).toThrow('No options passed to generator');
|
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() {
|
it('should call the appropriate generator', function() {
|
||||||
spyOn(Generate, 'createScaffoldDirectories');
|
spyOn(Generate, 'createScaffoldDirectories');
|
||||||
var generatorOptions = { appDirectory: '/fake/ionic/path', name: 'About', generatorName: 'page' };
|
var generatorOptions = { appDirectory: '/fake/ionic/path', name: 'About', generatorName: 'page' };
|
||||||
|
Reference in New Issue
Block a user