Skip to content
This repository was archived by the owner on Sep 14, 2022. It is now read-only.

Commit 7cfa23a

Browse files
author
HarishRaj11
committed
Rspec BDD Generation
1 parent 7b85b7e commit 7cfa23a

File tree

5 files changed

+36
-19
lines changed

5 files changed

+36
-19
lines changed

bin/swagger-project.js

+3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ var execute = cli.execute;
2323
var frameworks = Object.keys(project.frameworks).join('|');
2424
var assertiontypes = project.assertiontypes.join('|');
2525
var testmodules = project.testmodules.join('|');
26+
var lang = project.lang.join('|');
2627

2728
app
2829
.command('create [name]')
@@ -65,6 +66,7 @@ app
6566
.option('-d, --debug [port]', 'start in remote debug mode')
6667
.option('-b, --debug-brk [port]', 'start in remote debug mode, wait for debugger connect')
6768
.option('-m, --mock', 'run in mock mode')
69+
.option('-o, --host <server>', 'test server')
6870
.action(execute(project.test));
6971

7072
app
@@ -75,6 +77,7 @@ app
7577
.option('-t, --assertion-format <type>', 'one of: ' + assertiontypes)
7678
.option('-o, --force', 'allow overwriting of all existing test files matching those generated')
7779
.option('-l, --load-test [path]', 'generate load-tests for specified operations')
80+
.option('-n, --lang <language>', 'one of: ' + lang)
7881
.action(execute(project.generateTest));
7982

8083
app.parse(process.argv);

config/index.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ var debug = require('debug')('swagger');
2222
var config = {
2323
rootDir: path.resolve(__dirname, '..'),
2424
userHome: process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'],
25-
debug: !!process.env.DEBUG
25+
debug: !!process.env.DEBUG,
26+
language: 'js'
2627
};
2728
config.nodeModules = path.resolve(config.rootDir, 'node_modules');
2829

lib/commands/project/project.js

+27-14
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ var swaggerSpec = require('../../util/spec');
3030
var spec = require('swagger-tools').specs.v2;
3131
var inquirer = require('inquirer');
3232

33+
var LANGUAGE = ['js', 'rb'];
3334
var FRAMEWORKS = {
3435
connect: { source: 'connect' },
3536
express: { source: 'connect', overlay: 'express' },
@@ -61,6 +62,8 @@ module.exports = {
6162
read: readProject,
6263
assertiontypes: TEST_ASSERTION_TYPES,
6364
testmodules: TEST_MODULES,
65+
lang: LANGUAGE,
66+
6467

6568
// for testing stub generating
6669
generateTest: testGenerate
@@ -77,8 +80,9 @@ function create(name, options, cb) {
7780
}
7881

7982
if (name) {
80-
var valid = validateName(name);
81-
if (typeof valid === 'string') { return cb(new Error(valid)); }
83+
var valid = validateName(name);
84+
if (typeof valid === 'string') { return cb(new Error(valid)); }
85+
8286
}
8387

8488
if (options.framework && !FRAMEWORKS[options.framework]) {
@@ -220,6 +224,14 @@ function test(directory, options, cb) {
220224
if (options.mock) {
221225
process.env.swagger_mockMode = true;
222226
}
227+
228+
var server_config = require('../../../../../config.json')
229+
process.env.swagger_host = server_config[options.host].protocol + "://";
230+
process.env.swagger_host += server_config[options.host].host;
231+
if(server_config[options.host].port != ""){
232+
process.env.swagger_host += ":" + server_config[options.host].port;
233+
}
234+
223235
mocha.run(function(failures) {
224236
process.exit(failures);
225237
});
@@ -456,7 +468,8 @@ function testGenerate(directory, options, cb) {
456468
var config = {
457469
pathName: desiredPaths,
458470
testModule: testModule,
459-
assertionFormat: assertionFormat
471+
assertionFormat: assertionFormat,
472+
lang: options.lang
460473
};
461474

462475
// pass list of paths targeted for load testing
@@ -523,17 +536,17 @@ function testGenerate(directory, options, cb) {
523536
}
524537
}
525538
}, function(filteredResult) {
526-
527-
async.each(filteredResult, function(file, cb) {
528-
if (file.name === '.env') {
529-
fs.outputFile(path.join(directory, file.name), file.test, cb);
530-
} else {
531-
fs.outputFile(path.join(directory, '/test/api/client', file.name), file.test, cb);
532-
}
533-
}, function(err) {
534-
if (runInstall) {
535-
installDependencies(directory, 'Success! You may now run your tests.', cb);
536-
}
539+
async.each(filteredResult, function(file, cb) {
540+
console.log(file.name + " " + file.test);
541+
if (file.name === '.env') {
542+
fs.outputFile(path.join(directory, file.name), file.test, cb);
543+
} else {
544+
fs.outputFile(path.join(directory, '/test/api/client', file.name), file.test.replace(/x-enum/g, "enum"), cb);
545+
}
546+
}, function(err) {
547+
if (runInstall) {
548+
installDependencies(directory, 'Success! You may now run your tests.', cb);
549+
}
537550
});
538551
});
539552
});

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"serve-static": "^1.9.2",
3232
"swagger-converter": "^1.4.1",
3333
"swagger-editor": "^2.9.2",
34-
"swagger-test-templates": "^1.2.0",
34+
"swagger-test-templates": "git+https://github.com/HarishRaj11/swagger-test-templates.git#freshworks-bdd-spec-generation",
3535
"swagger-tools": "^0.10.1"
3636
},
3737
"devDependencies": {
@@ -54,4 +54,4 @@
5454
"swagger": "bin/swagger.js",
5555
"swagger-project": "bin/swagger-project.js"
5656
}
57-
}
57+
}

test/util/cli.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -230,14 +230,14 @@ describe('cli', function() {
230230

231231
it('should print the result of the command', function() {
232232

233-
cli.execute(executeNoError)(1);
233+
cli.execute(executeNoError)('1');
234234
exitCode.should.equal(0);
235235
capture.output().should.equal('1\n');
236236
});
237237

238238
it('should print the result with header', function() {
239239

240-
cli.execute(executeNoError, 'whatever')(1);
240+
cli.execute(executeNoError, 'whatever')('1');
241241
exitCode.should.equal(0);
242242
capture.output().should.equal('whatever\n========\n1\n');
243243
});

0 commit comments

Comments
 (0)