Skip to content

Commit

Permalink
fix: Writing enum member value that's a string should be surrounded i…
Browse files Browse the repository at this point in the history
…n quotes.
  • Loading branch information
dsherret committed Feb 11, 2018
1 parent fc1434b commit d5da5b6
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
6 changes: 4 additions & 2 deletions src/structureToTexts/enum/EnumMemberStructureToText.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ import {StructureToText} from "./../StructureToText";
export class EnumMemberStructureToText extends StructureToText<EnumMemberStructure> {
writeText(structure: EnumMemberStructure) {
this.writer.write(structure.name);
if (typeof structure.value !== "undefined")
this.writer.write(` = ${structure.value}`);
if (typeof structure.value === "string")
this.writer.write(` = `).quote(structure.value);
else if (typeof structure.value === "number")
this.writer.write(` = ${structure.value}`)
}
}
8 changes: 6 additions & 2 deletions src/tests/compiler/enum/enumDeclarationTests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,14 @@ describe(nameof(EnumDeclaration), () => {
doTest("enum MyEnum {\n}\n", 0, [{ name: "myName" }], "enum MyEnum {\n myName\n}\n");
});

it("should insert a member with a value", () => {
it("should insert a member with a number value", () => {
doTest("enum MyEnum {\n}\n", 0, [{ name: "myName", value: 5 }], "enum MyEnum {\n myName = 5\n}\n");
});

it("should insert a member with a string value", () => {
doTest("enum MyEnum {\n}\n", 0, [{ name: "myName", value: "str" }], "enum MyEnum {\n myName = \"str\"\n}\n");
});

it("should insert a member and add a comma to the previous member when no comma exists", () => {
doTest("enum MyEnum {\n member1\n}\n", 1, [{ name: "member2" }], "enum MyEnum {\n member1,\n member2\n}\n");
});
Expand Down Expand Up @@ -84,7 +88,7 @@ describe(nameof(EnumDeclaration), () => {
expect(result).to.be.instanceOf(EnumMember);
}

it("should add a member", () => {
it("should insert a member", () => {
doTest("enum MyEnum {\n member2\n}\n", 0, { name: "member1" }, "enum MyEnum {\n member1,\n member2\n}\n");
});
});
Expand Down

0 comments on commit d5da5b6

Please sign in to comment.