feat: track unused reflection data

This commit is contained in:
yjbanov
2015-08-19 14:07:30 -07:00
committed by Yegor Jbanov
parent b0d27ee896
commit 8336881a85
2 changed files with 57 additions and 4 deletions

View File

@ -48,6 +48,29 @@ export function main() {
beforeEach(() => { reflector = new Reflector(new ReflectionCapabilities()); });
describe("usage tracking", () => {
beforeEach(() => { reflector = new Reflector(null); });
it("should be disabled by default", () => {
expect(() => reflector.listUnusedKeys()).toThrowError('Usage tracking is disabled');
});
it("should report unused keys", () => {
reflector.trackUsage();
expect(reflector.listUnusedKeys()).toEqual([]);
reflector.registerType(AType, new ReflectionInfo(null, null, () => "AType"));
reflector.registerType(TestObj, new ReflectionInfo(null, null, () => "TestObj"));
expect(reflector.listUnusedKeys()).toEqual([AType, TestObj]);
reflector.factory(AType);
expect(reflector.listUnusedKeys()).toEqual([TestObj]);
reflector.factory(TestObj);
expect(reflector.listUnusedKeys()).toEqual([]);
});
});
describe("factory", () => {
it("should create a factory for the given type", () => {
var obj = reflector.factory(TestObj)(1, 2);