From e2d772a0c246d7d9bac8e1cbb77cd8a8529a614b Mon Sep 17 00:00:00 2001 From: jannyHou Date: Thu, 8 Nov 2018 18:09:48 -0500 Subject: [PATCH] honor app name in arguments --- model/index.js | 10 ++++++++++ test/model.test.js | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/model/index.js b/model/index.js index ee5125d..f0d56b2 100644 --- a/model/index.js +++ b/model/index.js @@ -114,6 +114,16 @@ module.exports = class ModelGenerator extends ActionsMixin(yeoman) { askForName() { if (this.abort) return; + + if (this.arguments && this.arguments.length >= 1) { + debug('model name is provided as %s', this.arguments[0]); + this.name = this.arguments[0]; + var valid = validateRequiredName(this.name); + if (valid === true) return; + this.log(valid); + this.name = undefined; + } + var prompts = [ { name: 'name', diff --git a/test/model.test.js b/test/model.test.js index d7f01ff..452464e 100644 --- a/test/model.test.js +++ b/test/model.test.js @@ -112,6 +112,19 @@ describe('loopback:model generator', function() { }); }); + it('honors the model name in arg', function() { + return helpers.run(path.join(__dirname, '../model')) + .cd(SANDBOX) + .withArguments(['AdvancedProduct']) + .withPrompts({ + dataSource: 'db', + base: 'Product', + }).then(function() { + var product = readAdvancedProductJsonSync(); + expect(product).to.have.property('base', 'Product'); + }); + }); + describe('in an empty project', function() { beforeEach(common.resetWorkspace); beforeEach(function createSandbox(done) { @@ -267,6 +280,12 @@ describe('loopback:model generator', function() { return JSON.parse(fs.readFileSync(productJson)); } + function readAdvancedProductJsonSync() { + var advancedProductJson = path.resolve(SANDBOX, 'common/models/advanced-product.json'); + expect(fs.existsSync(advancedProductJson), 'file exists'); + return JSON.parse(fs.readFileSync(advancedProductJson)); + } + function readModelsJsonSync(facet) { facet = facet || 'server'; var filepath = path.resolve(SANDBOX, facet, 'model-config.json');