mirror of
https://github.com/protobufjs/protobuf.js.git
synced 2025-12-08 20:58:55 +00:00
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
var tape = require("tape");
|
|
|
|
var protobuf = require("..");
|
|
|
|
tape.test("exposure handlers", function(test) {
|
|
var root = new protobuf.Root();
|
|
|
|
var ns = new protobuf.Namespace("MyNamespace");
|
|
root.add(ns);
|
|
test.ok(root.MyNamespace, "should expose namespaces on roots");
|
|
|
|
var type = new protobuf.Type("MyType");
|
|
ns.add(type);
|
|
test.ok(root.MyNamespace.MyType, "should expose types on namespaces");
|
|
|
|
var lcType = new protobuf.Type("myType");
|
|
ns.add(lcType);
|
|
test.notOk(root.MyNamespace.myType, "should not expose lower-cased types on namespaces");
|
|
|
|
var enm = new protobuf.Enum("MyEnum", {});
|
|
type.add(enm);
|
|
test.ok(root.MyNamespace.MyType.MyEnum, "should expose enums on types");
|
|
|
|
var lcEnm = new protobuf.Enum("myEnum", {});
|
|
type.add(lcEnm);
|
|
test.notOk(root.MyNamespace.MyType.myEnum, "should not expose lower-cased enums on types");
|
|
|
|
ns.remove(type);
|
|
test.notOk(root.MyNamespace.MyType, "should unexpose types on namespaces");
|
|
|
|
type.remove(enm);
|
|
test.notOk(type.MyEnum, "should unexpose enums on types, even if no longer part of a root");
|
|
|
|
root.remove(ns);
|
|
test.notOk(root.MyNamespace, "should unexpose namespaces on roots");
|
|
|
|
test.end();
|
|
}); |