var tape = require("tape"); var protobuf = require(".."); tape.test("by default, drop comments through de/serialization", function(test) { test.plan(16); protobuf.load("tests/data/comment_serialization.proto", function(err, root) { if (err) { throw test.fail(err.message); } var copy = protobuf.Root.fromJSON(root.toJSON()); test.ok(root.lookup("TestMessage").comment); test.notOk(copy.lookup("TestMessage").comment); test.ok(root.lookup("TestMessage.testField").comment); test.notOk(copy.lookup("TestMessage.testField").comment); test.ok(root.lookup("TestMessage.testMap").comment); test.notOk(copy.lookup("TestMessage.testMap").comment); test.ok(root.lookup("TestMessage.testOneof").comment); test.notOk(copy.lookup("TestMessage.testOneof").comment); var rootService = root.lookupService("TestService"); var copyService = copy.lookupService("TestService"); test.ok(rootService.comment); test.notOk(copyService.comment); test.ok(rootService.methods["testMethod"].comment); test.notOk(copyService.methods["testMethod"].comment); var rootEnum = root.lookup("TestEnum"); var copyEnum = copy.lookup("TestEnum"); test.ok(rootEnum.comment); test.notOk(copyEnum.comment); test.ok(rootEnum.comments.VALUE); test.notOk(copyEnum.comments.VALUE); test.end(); }); }); tape.test("preserve comments through de/serialization if option set", function(test) { test.plan(8); protobuf.load("tests/data/comment_serialization.proto", function(err, root) { if (err) { throw test.fail(err.message); } var toJSONOptions = {keepComments: true}; var copy = protobuf.Root.fromJSON(root.toJSON(toJSONOptions)); test.equal(root.lookup("TestMessage").comment, copy.lookup("TestMessage").comment); test.equal(root.lookup("TestMessage.testField").comment, copy.lookup("TestMessage.testField").comment); test.equal(root.lookup("TestMessage.testMap").comment, copy.lookup("TestMessage.testMap").comment); test.equal(root.lookup("TestMessage.testOneof").comment, copy.lookup("TestMessage.testOneof").comment); var rootService = root.lookupService("TestService"); var copyService = copy.lookupService("TestService"); test.equal(rootService.comment, copyService.comment); test.equal(rootService.methods["testMethod"].comment, copyService.methods["testMethod"].comment); var rootEnum = root.lookup("TestEnum"); var copyEnum = copy.lookup("TestEnum"); test.equal(rootEnum.comment, copyEnum.comment); test.equal(rootEnum.comments.VALUE, copyEnum.comments.VALUE); test.end(); }); });