mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
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:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -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',
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user