From 15d31f753de1f2218b83f81f61c23a2e697c2405 Mon Sep 17 00:00:00 2001 From: Alexey Makhrov Date: Fri, 24 Jan 2020 13:59:48 -0800 Subject: [PATCH] [typescript-angular] Sanitize/transform model name after appending model suffix (#5105) This makes sure the final (suffixed) model name is checked against the TS keywords / reserved names. --- .../languages/TypeScriptAngularClientCodegen.java | 8 ++++---- .../TypeScriptAngularClientCodegenTest.java | 10 ++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java index ef306878970..67528278944 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java @@ -604,11 +604,11 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode @Override public String toModelName(String name) { - String modelName = super.toModelName(name); - if (modelSuffix.length() == 0 || modelName.endsWith(modelSuffix)) { - return modelName; + if (modelSuffix.length() != 0 && !name.endsWith(modelSuffix)) { + name = name + modelSuffix; } - return modelName + modelSuffix; + + return super.toModelName(name); } public String removeModelPrefixSuffix(String name) { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularClientCodegenTest.java index b106a0be88e..394ddc72e4e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularClientCodegenTest.java @@ -16,6 +16,16 @@ import org.testng.annotations.Test; public class TypeScriptAngularClientCodegenTest { + @Test + public void testModelSuffix() { + TypeScriptAngularClientCodegen codegen = new TypeScriptAngularClientCodegen(); + codegen.additionalProperties().put("modelSuffix", "MySuffix"); + codegen.processOpts(); + + Assert.assertEquals(codegen.toModelName("TestName"), "TestNameMySuffix"); + Assert.assertEquals(codegen.toModelName("Error"), "ErrorMySuffix"); + } + @Test public void testModelFileSuffix() { TypeScriptAngularClientCodegen codegen = new TypeScriptAngularClientCodegen();