diff --git a/bin/swagger-project.js b/bin/swagger-project.js index 1647ac5a..8f462ba3 100755 --- a/bin/swagger-project.js +++ b/bin/swagger-project.js @@ -23,6 +23,7 @@ var execute = cli.execute; var frameworks = Object.keys(project.frameworks).join('|'); var assertiontypes = project.assertiontypes.join('|'); var testmodules = project.testmodules.join('|'); +var lang = project.lang.join('|'); app .command('create [name]') @@ -65,6 +66,7 @@ app .option('-d, --debug [port]', 'start in remote debug mode') .option('-b, --debug-brk [port]', 'start in remote debug mode, wait for debugger connect') .option('-m, --mock', 'run in mock mode') + .option('-o, --host ', 'test server') .action(execute(project.test)); app @@ -75,6 +77,7 @@ app .option('-t, --assertion-format ', 'one of: ' + assertiontypes) .option('-o, --force', 'allow overwriting of all existing test files matching those generated') .option('-l, --load-test [path]', 'generate load-tests for specified operations') + .option('-n, --lang ', 'one of: ' + lang) .action(execute(project.generateTest)); app.parse(process.argv); diff --git a/config/index.js b/config/index.js index 38908e51..c2a7f4c9 100644 --- a/config/index.js +++ b/config/index.js @@ -22,7 +22,8 @@ var debug = require('debug')('swagger'); var config = { rootDir: path.resolve(__dirname, '..'), userHome: process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], - debug: !!process.env.DEBUG + debug: !!process.env.DEBUG, + language: 'js' }; config.nodeModules = path.resolve(config.rootDir, 'node_modules'); diff --git a/lib/commands/project/project.js b/lib/commands/project/project.js index f9fd5e7f..63772946 100644 --- a/lib/commands/project/project.js +++ b/lib/commands/project/project.js @@ -30,6 +30,7 @@ var swaggerSpec = require('../../util/spec'); var spec = require('swagger-tools').specs.v2; var inquirer = require('inquirer'); +var LANGUAGE = ['js', 'rb']; var FRAMEWORKS = { connect: { source: 'connect' }, express: { source: 'connect', overlay: 'express' }, @@ -61,6 +62,8 @@ module.exports = { read: readProject, assertiontypes: TEST_ASSERTION_TYPES, testmodules: TEST_MODULES, + lang: LANGUAGE, + // for testing stub generating generateTest: testGenerate @@ -77,8 +80,9 @@ function create(name, options, cb) { } if (name) { - var valid = validateName(name); - if (typeof valid === 'string') { return cb(new Error(valid)); } + var valid = validateName(name); + if (typeof valid === 'string') { return cb(new Error(valid)); } + } if (options.framework && !FRAMEWORKS[options.framework]) { @@ -220,6 +224,14 @@ function test(directory, options, cb) { if (options.mock) { process.env.swagger_mockMode = true; } + + var server_config = require('../../../../../config.json') + process.env.swagger_host = server_config[options.host].protocol + "://"; + process.env.swagger_host += server_config[options.host].host; + if(server_config[options.host].port != ""){ + process.env.swagger_host += ":" + server_config[options.host].port; + } + mocha.run(function(failures) { process.exit(failures); }); @@ -456,7 +468,8 @@ function testGenerate(directory, options, cb) { var config = { pathName: desiredPaths, testModule: testModule, - assertionFormat: assertionFormat + assertionFormat: assertionFormat, + lang: options.lang }; // pass list of paths targeted for load testing @@ -523,17 +536,16 @@ function testGenerate(directory, options, cb) { } } }, function(filteredResult) { - - async.each(filteredResult, function(file, cb) { - if (file.name === '.env') { - fs.outputFile(path.join(directory, file.name), file.test, cb); - } else { - fs.outputFile(path.join(directory, '/test/api/client', file.name), file.test, cb); - } - }, function(err) { - if (runInstall) { - installDependencies(directory, 'Success! You may now run your tests.', cb); - } + async.each(finalResult, function(file, cb) { + if (file.name === '.env') { + fs.outputFile(path.join(directory, file.name), file.test, cb); + } else { + fs.outputFile(path.join(directory, '/test/api/client', file.name), file.test.replace(/x-enum/g, "enum"), cb); + } + }, function(err) { + if (runInstall) { + installDependencies(directory, 'Success! You may now run your tests.', cb); + } }); }); }); diff --git a/package.json b/package.json index f944b068..9101dc94 100644 --- a/package.json +++ b/package.json @@ -28,10 +28,11 @@ "lodash": "^4.17.2", "mocha": "^3.2.0", "nodemon": "^1.3.7", + "sails": "1.1.0", "serve-static": "^1.9.2", "swagger-converter": "^1.4.1", "swagger-editor": "^2.9.2", - "swagger-test-templates": "^1.2.0", + "swagger-test-templates": "git+https://github.com/HarishRaj11/swagger-test-templates.git#freshworks-bdd-spec-generation", "swagger-tools": "^0.10.1" }, "devDependencies": { @@ -54,4 +55,4 @@ "swagger": "bin/swagger.js", "swagger-project": "bin/swagger-project.js" } -} \ No newline at end of file +} diff --git a/test/util/cli.js b/test/util/cli.js index 20d6bc0f..3868ba4f 100644 --- a/test/util/cli.js +++ b/test/util/cli.js @@ -230,14 +230,14 @@ describe('cli', function() { it('should print the result of the command', function() { - cli.execute(executeNoError)(1); + cli.execute(executeNoError)('1'); exitCode.should.equal(0); capture.output().should.equal('1\n'); }); it('should print the result with header', function() { - cli.execute(executeNoError, 'whatever')(1); + cli.execute(executeNoError, 'whatever')('1'); exitCode.should.equal(0); capture.output().should.equal('whatever\n========\n1\n'); });