From cc408a0dd7164a61529653585a5c251d4f44317a Mon Sep 17 00:00:00 2001 From: xhh Date: Thu, 17 Dec 2015 00:32:50 +0800 Subject: [PATCH] Add unit tests to Javascript Petstore sample --- .../languages/JavascriptClientCodegen.java | 2 +- .../main/resources/Javascript/api.mustache | 7 +++--- .../resources/Javascript/package.mustache | 7 +++++- .../client/petstore/javascript/package.json | 7 +++++- .../petstore/javascript/src/api/PetApi.js | 6 ++--- .../petstore/javascript/src/api/StoreApi.js | 6 ++--- .../petstore/javascript/src/api/UserApi.js | 6 ++--- .../client/petstore/javascript/src/index.js | 6 ++--- .../client/petstore/javascript/test/test.js | 22 +++++++++++++++++++ 9 files changed, 50 insertions(+), 19 deletions(-) create mode 100644 samples/client/petstore/javascript/test/test.js diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java index 62bc42bf21d2..55b847668c0b 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java @@ -281,7 +281,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo @Override public String toApiImport(String name) { - return name; + return toApiName(name); } @Override diff --git a/modules/swagger-codegen/src/main/resources/Javascript/api.mustache b/modules/swagger-codegen/src/main/resources/Javascript/api.mustache index cce87ee2f7be..2a0c74ce5604 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript/api.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript/api.mustache @@ -1,9 +1,8 @@ // require files in Node.js environment -{{#imports}} -var {{import}};{{/imports}} +var ${{#imports}}, {{import}}{{/imports}}; if (typeof module === 'object' && module.exports) { - {{#imports}} - {{import}} = require('./{{import}}.js');{{/imports}} + $ = require('jquery');{{#imports}} + {{import}} = require('../model/{{import}}.js');{{/imports}} } // export module for AMD diff --git a/modules/swagger-codegen/src/main/resources/Javascript/package.mustache b/modules/swagger-codegen/src/main/resources/Javascript/package.mustache index d39136cafdd6..85603bd364b6 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript/package.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript/package.mustache @@ -5,9 +5,14 @@ "license": "{{{projectLicenseName}}}",{{/projectLicenseName}} "main": "{{sourceFolder}}/index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "./node_modules/mocha/bin/mocha" }, "dependencies": { "jquery": "^2.1.4" + }, + "devDependencies": { + "mocha": "^2.3.4", + "mockrequire": "0.0.5", + "najax": "0.3.1" } } diff --git a/samples/client/petstore/javascript/package.json b/samples/client/petstore/javascript/package.json index 926778d30156..c5f1afde698c 100644 --- a/samples/client/petstore/javascript/package.json +++ b/samples/client/petstore/javascript/package.json @@ -5,9 +5,14 @@ "license": "Apache 2.0", "main": "src/index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "./node_modules/mocha/bin/mocha" }, "dependencies": { "jquery": "^2.1.4" + }, + "devDependencies": { + "mocha": "^2.3.4", + "mockrequire": "0.0.5", + "najax": "0.3.1" } } diff --git a/samples/client/petstore/javascript/src/api/PetApi.js b/samples/client/petstore/javascript/src/api/PetApi.js index 58ee6a1c9f7d..d9e10256b1c5 100644 --- a/samples/client/petstore/javascript/src/api/PetApi.js +++ b/samples/client/petstore/javascript/src/api/PetApi.js @@ -1,8 +1,8 @@ // require files in Node.js environment -var Pet; +var $, Pet; if (typeof module === 'object' && module.exports) { - - Pet = require('./Pet.js'); + $ = require('jquery'); + Pet = require('../model/Pet.js'); } // export module for AMD diff --git a/samples/client/petstore/javascript/src/api/StoreApi.js b/samples/client/petstore/javascript/src/api/StoreApi.js index 4cc55ae6cc15..7a20d8841a36 100644 --- a/samples/client/petstore/javascript/src/api/StoreApi.js +++ b/samples/client/petstore/javascript/src/api/StoreApi.js @@ -1,8 +1,8 @@ // require files in Node.js environment -var Order; +var $, Order; if (typeof module === 'object' && module.exports) { - - Order = require('./Order.js'); + $ = require('jquery'); + Order = require('../model/Order.js'); } // export module for AMD diff --git a/samples/client/petstore/javascript/src/api/UserApi.js b/samples/client/petstore/javascript/src/api/UserApi.js index 49883023ae71..72dc3f3d198e 100644 --- a/samples/client/petstore/javascript/src/api/UserApi.js +++ b/samples/client/petstore/javascript/src/api/UserApi.js @@ -1,8 +1,8 @@ // require files in Node.js environment -var User; +var $, User; if (typeof module === 'object' && module.exports) { - - User = require('./User.js'); + $ = require('jquery'); + User = require('../model/User.js'); } // export module for AMD diff --git a/samples/client/petstore/javascript/src/index.js b/samples/client/petstore/javascript/src/index.js index f34b7e01432a..b772f6024dca 100644 --- a/samples/client/petstore/javascript/src/index.js +++ b/samples/client/petstore/javascript/src/index.js @@ -12,11 +12,11 @@ if (typeof module === 'object' && module.exports) { SwaggerPetstore.Order = require('./model/Order.js'); - SwaggerPetstore.User = require('./api/User.js'); + SwaggerPetstore.UserApi = require('./api/UserApi.js'); - SwaggerPetstore.Store = require('./api/Store.js'); + SwaggerPetstore.StoreApi = require('./api/StoreApi.js'); - SwaggerPetstore.Pet = require('./api/Pet.js'); + SwaggerPetstore.PetApi = require('./api/PetApi.js'); module.exports = SwaggerPetstore; } \ No newline at end of file diff --git a/samples/client/petstore/javascript/test/test.js b/samples/client/petstore/javascript/test/test.js new file mode 100644 index 000000000000..c7d84917f8a2 --- /dev/null +++ b/samples/client/petstore/javascript/test/test.js @@ -0,0 +1,22 @@ +var assert = require('assert'); +var mockrequire = require('mockrequire'); +var najax = require('najax'); + +var PetApi = mockrequire('../src/api/PetApi', { + 'jquery': { + 'ajax': najax + } +}); + +describe('PetApi', function() { + describe('#getPetById', function () { + it('should work', function (done) { + var api = new PetApi(); + api.getPetById(1, function(pet, textStatus, jqXHR) { + assert.equal('success', textStatus); + assert.equal(1, pet.id); + done(); + }); + }); + }); +});