ts-simple-ast
Version:
TypeScript compiler wrapper for AST navigation and code generation.
54 lines (52 loc) • 2.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const compiler_1 = require("./../../../../compiler");
const testHelpers_1 = require("./../../testHelpers");
function getInfoFromTextWithFirstMember(text = "enum MyEnum { myMember }") {
const obj = testHelpers_1.getInfoFromText(text);
const firstEnumMember = obj.firstChild.getMembers()[0];
return Object.assign({}, obj, { firstEnumMember });
}
describe("PropertyNamedNode", () => {
describe("rename", () => {
function throwTest(text) {
const { firstEnumMember } = getInfoFromTextWithFirstMember();
chai_1.expect(() => firstEnumMember.rename(text)).to.throw();
}
it("should set the name and rename any referenced nodes", () => {
const { firstEnumMember, sourceFile } = getInfoFromTextWithFirstMember("enum MyEnum { myMember }\nlet myEnumMember = MyEnum.myMember;");
firstEnumMember.rename("myNewMember");
chai_1.expect(sourceFile.getFullText()).to.equal("enum MyEnum { myNewMember }\nlet myEnumMember = MyEnum.myNewMember;");
});
it("should throw if null", () => {
throwTest(null);
});
it("should throw if empty string", () => {
throwTest("");
});
it("should throw if whitespace", () => {
throwTest(" ");
});
it("should throw if a number", () => {
throwTest(4);
});
});
describe("getName", () => {
const { firstEnumMember } = getInfoFromTextWithFirstMember();
it("should get the name", () => {
chai_1.expect(firstEnumMember.getName()).to.equal("myMember");
});
});
describe("getNameIdentifier", () => {
const { firstEnumMember } = getInfoFromTextWithFirstMember();
const nameNode = firstEnumMember.getNameIdentifier();
it("should have correct text", () => {
chai_1.expect(nameNode.getText()).to.equal("myMember");
});
it("should be of correct instance", () => {
chai_1.expect(nameNode).to.be.instanceOf(compiler_1.Identifier);
});
});
});
//# sourceMappingURL=propertyNamedNodeTests.js.map