Refactor(generate): Update code to be more in line with the name of tabs. Update options of generate method to include generator instead of generatorName. Mock out the console logging messages on tests

This commit is contained in:
jbavari
2015-11-02 18:02:14 -07:00
parent 3e216aca0a
commit b0f9a0aba0
5 changed files with 17 additions and 18 deletions

View File

@@ -19,7 +19,7 @@ Generate.log = function log() {
console.log('DEBUG'.red, arguments);
};
// options: appDirectory, generatorName, name
// options: appDirectory, generator, name
Generate.generate = function generate(options) {
Generate.inquirer = inquirer;
// Generate.log('Generate options', options);
@@ -32,12 +32,12 @@ Generate.generate = function generate(options) {
Generate.log = options.log;
}
if (options.generatorName && !Generate.generators[options.generatorName]) {
throw new Error('There is no generator available with that name: ' + options.generatorName + '.');
if (options.generator && !Generate.generators[options.generator]) {
throw new Error('There is no generator available with that name: ' + options.generator + '.');
}
if (!options.generatorName) {
options.generatorName = 'page';
if (!options.generator) {
options.generator = 'page';
}
var generateOptions = {
@@ -46,16 +46,16 @@ Generate.generate = function generate(options) {
fileName: Generate.fileName(options.name),
jsClassName: Generate.jsClassName(options.name),
name: options.name,
template: options.generatorName
template: options.generator
};
Generate.createScaffoldDirectories({appDirectory: options.appDirectory, fileName: generateOptions.fileName});
try {
//Try to run the generator if it supplies a run method.
var generator = Generate.generators[options.generatorName];
var generator = Generate.generators[options.generator];
if (generator && generator.run) {
return Generate.generators[options.generatorName].run(generateOptions);
return Generate.generators[options.generator].run(generateOptions);
} else {
return Generate.defaultTemplates(generateOptions);
}

View File

@@ -41,8 +41,6 @@ Generator.promptForTabName = function promptForTabName(tabIndex, options) {
}
Generator.run = function run(options) {
console.log('got options!', options);
//Need to query user for tabs:
options.rootDirectory = options.rootDirectory || path.join('www', 'app');
var savePath = path.join(options.appDirectory, options.rootDirectory, options.fileName);
@@ -51,7 +49,6 @@ Generator.run = function run(options) {
return Generator.promptForTabCount()
.then(function(count) {
console.log('count', count);
var promise = Q();
for(var i = 0, j = parseInt(count); i < j; i++) {
(function(index) {
@@ -70,7 +67,6 @@ Generator.run = function run(options) {
templates.forEach(function(template) {
options.templatePath = template.file;
options.tabs = Generator.tabs;
console.log('generating stuffs', options);
var renderedTemplate = Generate.renderTemplateFromFile(options);
var saveFilePath = path.join(savePath, [options.fileName, template.type].join(''));
// console.log('renderedTemplate', renderedTemplate, 'saving to', saveFilePath);
@@ -80,7 +76,6 @@ Generator.run = function run(options) {
//Now render the individual tab pages
Generator.tabs.forEach(function(tab) {
console.log('Tab:', tab);
tab.generatorName = 'page';
tab.appDirectory = tab.appDirectory;
Generate.generate(tab);

View File

@@ -11,6 +11,10 @@ var fs = require('fs'),
// }
describe('#Generate', function() {
beforeEach(function() {
spyOn(console, 'log');
});
it('should have generate exported', function() {
expect(Generate).toBeDefined();
expect(Generate.generate).toBeDefined();
@@ -28,7 +32,7 @@ describe('#Generate', function() {
expect(Generate.generators).toBeDefined();
expect(Object.keys(Generate.generators).length).toBeGreaterThan(0);
expect(Generate.generators.page).toBeDefined();
expect(Generate.generators['page-tabs']).toBeDefined();
expect(Generate.generators['tabs']).toBeDefined();
});
it('should be able to load generators', function() {
@@ -42,7 +46,7 @@ describe('#Generate', function() {
});
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' };
var generatorOptions = { appDirectory: '/fake/ionic/path', name: 'About', generator: 'tabz' };
expect(function() {
Generate.generate(generatorOptions);
}).toThrow('There is no generator available with that name: tabz.');
@@ -50,7 +54,7 @@ describe('#Generate', function() {
it('should call the appropriate generator', function() {
spyOn(Generate, 'createScaffoldDirectories');
var generatorOptions = { appDirectory: '/fake/ionic/path', name: 'About', generatorName: 'page' };
var generatorOptions = { appDirectory: '/fake/ionic/path', name: 'About', generator: 'page' };
var generatorSpy = {run: createSpy()};
var realGenerator = Generate.generators['page'];
Generate.generators['page'] = generatorSpy;
@@ -73,7 +77,7 @@ describe('#Generate', function() {
describe('#generate:page', function() {
it('should generate all the templates for a page', function() {
var generatorOptions = { appDirectory: '/ionic/app/dir', name: 'About', generatorName: 'page' };
var generatorOptions = { appDirectory: '/ionic/app/dir', name: 'About', generator: 'page' };
var genOpts = {
appDirectory: '/ionic/app/dir',
fileName: 'about',
@@ -107,7 +111,7 @@ describe('#Generate', function() {
var options = {
appDirectory: appDir,
generatorName: 'page',
generator: 'page',
name: 'MyPage',
}