diff --git a/src/ts/enum.ts b/src/ts/enum.ts index f1a44fea..83e7f11f 100644 --- a/src/ts/enum.ts +++ b/src/ts/enum.ts @@ -6,7 +6,7 @@ export function printEnum(enumDescriptor: EnumDescriptorProto, indentLevel: numb printer.printEmptyLn(); printer.printLn(`export enum ${enumDescriptor.getName()} {`); enumDescriptor.getValueList().forEach(value => { - printer.printIndentedLn(`${value.getName()} = ${value.getNumber()},`); + printer.printIndentedLn(`${value.getName().toUpperCase()} = ${value.getNumber()},`); }); printer.printLn(`}`); return printer.getOutput(); diff --git a/test/proto/examplecom/enum_message.proto b/test/proto/examplecom/enum_message.proto index 92bf5a1e..db11f682 100644 --- a/test/proto/examplecom/enum_message.proto +++ b/test/proto/examplecom/enum_message.proto @@ -9,6 +9,7 @@ message EnumMessage { DEFAULT = 0; FIRST = 1; SECOND = 2; + Third = 3; // protoc will convert to ALL_CAPS. } InternalEnum internal_enum = 1; diff --git a/test/ts_test/src/enums.ts b/test/ts_test/src/enums.ts index 7204d4dc..56cc8d70 100644 --- a/test/ts_test/src/enums.ts +++ b/test/ts_test/src/enums.ts @@ -42,3 +42,11 @@ describe("external enums", () => { assert.deepEqual(parentMsg.getExternalEnumsList(), [ExternalEnum.FIRST, ExternalEnum.SECOND]); }); }); + +describe("enum casing", () => { + it("should export enums as ALL_CAPS in proto definitions (#21)", () => { + const parentMsg = new EnumMessage(); + parentMsg.setInternalEnum(InternalEnum.THIRD); // should compile. + assert.ok(true, ".d.ts file should export the enum definition in ALL_CAPS"); + }); +}); \ No newline at end of file