diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java index f4fc2a4d8c7..bd1d988e90a 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java @@ -310,7 +310,12 @@ public void preprocessSwagger(Swagger swagger) { if (info.getTitle() != null) { // when info.title is defined, use it for projectName // used in package.json - projectName = dashize(info.getTitle()); + projectName = info.getTitle() + .replaceAll("[^a-zA-Z0-9]", "-") + .replaceAll("^[-]*", "") + .replaceAll("[-]*$", "") + .replaceAll("[-]{2,}", "-") + .toLowerCase(); this.additionalProperties.put("projectName", projectName); } } diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/nodejs/NodeJSServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/nodejs/NodeJSServerOptionsTest.java index a1cc4aab2b9..658b2f7ecca 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/nodejs/NodeJSServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/nodejs/NodeJSServerOptionsTest.java @@ -7,6 +7,9 @@ import mockit.Expectations; import mockit.Tested; +import org.testng.annotations.Test; + +import static org.testng.Assert.assertEquals; public class NodeJSServerOptionsTest extends AbstractOptionsTest { @@ -32,4 +35,27 @@ protected void setExpectations() { times = 1; }}; } + + + @Test + public void testCleanTitle() { + String dirtyTitle = "safe-title"; + String clean = dirtyTitle.replaceAll("[^a-zA-Z0-9]", "-") + .replaceAll("^[-]*", "") + .replaceAll("[-]*$", "") + .replaceAll("[-]{2,}", "-"); + + assertEquals(clean, "safe-title"); + } + + @Test + public void testDirtyTitleCleansing() { + String dirtyTitle = "_it's-$ooo//////////---_//dirty!!!!"; + String clean = dirtyTitle.replaceAll("[^a-zA-Z0-9]", "-") + .replaceAll("^[-]*", "") + .replaceAll("[-]*$", "") + .replaceAll("[-]{2,}", "-"); + + assertEquals(clean, "it-s-ooo-dirty"); + } } diff --git a/samples/server/petstore/nodejs/api/swagger.yaml b/samples/server/petstore/nodejs/api/swagger.yaml index 0710bccc06f..64049d2fdcc 100644 --- a/samples/server/petstore/nodejs/api/swagger.yaml +++ b/samples/server/petstore/nodejs/api/swagger.yaml @@ -356,8 +356,8 @@ paths: description: "ID of pet that needs to be fetched" required: true type: "integer" - maximum: 5 - minimum: 1 + maximum: 5.0 + minimum: 1.0 format: "int64" responses: 200: @@ -385,7 +385,6 @@ paths: description: "ID of the order that needs to be deleted" required: true type: "string" - minimum: 1 responses: 400: description: "Invalid ID supplied"