[typescript] Fix incorrect enum literal case (#7378)

* Fix incorrect enum values for typescript clients

* Fix incorrect enum values for typescript clients

* Fix incorrect enum values for typescript clients
This commit is contained in:
Andrey Mochalov 2020-09-09 16:58:45 +03:00 committed by GitHub
parent 37de486c43
commit 4d8ac0e055
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 84 additions and 3 deletions

View File

@ -690,13 +690,13 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
case original: case original:
return name; return name;
case camelCase: case camelCase:
return camelize(name, true); return camelize(underscore(name), true);
case PascalCase: case PascalCase:
return camelize(name); return camelize(underscore(name));
case snake_case: case snake_case:
return underscore(name); return underscore(name);
case UPPERCASE: case UPPERCASE:
return name.toUpperCase(Locale.ROOT); return underscore(name).toUpperCase(Locale.ROOT);
default: default:
throw new IllegalArgumentException("Unsupported enum property naming: '" + name); throw new IllegalArgumentException("Unsupported enum property naming: '" + name);
} }

View File

@ -0,0 +1,81 @@
package org.openapitools.codegen.typescript;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.languages.TypeScriptAxiosClientCodegen;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
public class TypeScriptAxiosClientCodegenTestTest {
TypeScriptAxiosClientCodegen codegen = new TypeScriptAxiosClientCodegen();
@Test
public void testToEnumVarNameOriginalNamingType() {
codegen.additionalProperties().put(CodegenConstants.ENUM_PROPERTY_NAMING, CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.original.name());
codegen.processOpts();
assertEquals(codegen.toEnumVarName("SCIENCE", "string"), "SCIENCE");
assertEquals(codegen.toEnumVarName("SCIENCE_FICTION", "string"), "SCIENCE_FICTION");
assertEquals(codegen.toEnumVarName("science", "string"), "science");
assertEquals(codegen.toEnumVarName("science_fiction", "string"), "science_fiction");
assertEquals(codegen.toEnumVarName("scienceFiction", "string"), "scienceFiction");
assertEquals(codegen.toEnumVarName("ScienceFiction", "string"), "ScienceFiction");
assertEquals(codegen.toEnumVarName("A", "string"), "A");
assertEquals(codegen.toEnumVarName("b", "string"), "b");
}
@Test
public void testToEnumVarNameCamelCaseNamingType() {
codegen.additionalProperties().put(CodegenConstants.ENUM_PROPERTY_NAMING, CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.camelCase.name());
codegen.processOpts();
assertEquals(codegen.toEnumVarName("SCIENCE", "string"), "science");
assertEquals(codegen.toEnumVarName("SCIENCE_FICTION", "string"), "scienceFiction");
assertEquals(codegen.toEnumVarName("science", "string"), "science");
assertEquals(codegen.toEnumVarName("science_fiction", "string"), "scienceFiction");
assertEquals(codegen.toEnumVarName("scienceFiction", "string"), "scienceFiction");
assertEquals(codegen.toEnumVarName("ScienceFiction", "string"), "scienceFiction");
}
@Test
public void testToEnumVarNamePascalCaseNamingType() {
codegen.additionalProperties().put(CodegenConstants.ENUM_PROPERTY_NAMING, CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.PascalCase.name());
codegen.processOpts();
assertEquals(codegen.toEnumVarName("SCIENCE", "string"), "Science");
assertEquals(codegen.toEnumVarName("SCIENCE_FICTION", "string"), "ScienceFiction");
assertEquals(codegen.toEnumVarName("science", "string"), "Science");
assertEquals(codegen.toEnumVarName("science_fiction", "string"), "ScienceFiction");
assertEquals(codegen.toEnumVarName("scienceFiction", "string"), "ScienceFiction");
assertEquals(codegen.toEnumVarName("ScienceFiction", "string"), "ScienceFiction");
assertEquals(codegen.toEnumVarName("A", "string"), "A");
assertEquals(codegen.toEnumVarName("b", "string"), "B");
}
@Test
public void testToEnumVarNameSnakeCaseNamingType() {
codegen.additionalProperties().put(CodegenConstants.ENUM_PROPERTY_NAMING, CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.snake_case.name());
codegen.processOpts();
assertEquals(codegen.toEnumVarName("SCIENCE", "string"), "science");
assertEquals(codegen.toEnumVarName("SCIENCE_FICTION", "string"), "science_fiction");
assertEquals(codegen.toEnumVarName("science", "string"), "science");
assertEquals(codegen.toEnumVarName("science_fiction", "string"), "science_fiction");
assertEquals(codegen.toEnumVarName("scienceFiction", "string"), "science_fiction");
assertEquals(codegen.toEnumVarName("ScienceFiction", "string"), "science_fiction");
assertEquals(codegen.toEnumVarName("A", "string"), "a");
assertEquals(codegen.toEnumVarName("b", "string"), "b");
}
@Test
public void testToEnumVarNameUpperCaseNamingType() {
codegen.additionalProperties().put(CodegenConstants.ENUM_PROPERTY_NAMING, CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.UPPERCASE.name());
codegen.processOpts();
assertEquals(codegen.toEnumVarName("SCIENCE", "string"), "SCIENCE");
assertEquals(codegen.toEnumVarName("SCIENCE_FICTION", "string"), "SCIENCE_FICTION");
assertEquals(codegen.toEnumVarName("science", "string"), "SCIENCE");
assertEquals(codegen.toEnumVarName("science_fiction", "string"), "SCIENCE_FICTION");
assertEquals(codegen.toEnumVarName("scienceFiction", "string"), "SCIENCE_FICTION");
assertEquals(codegen.toEnumVarName("ScienceFiction", "string"), "SCIENCE_FICTION");
assertEquals(codegen.toEnumVarName("A", "string"), "A");
assertEquals(codegen.toEnumVarName("b", "string"), "B");
}
}