// Copyright 2022 The Pigweed Authors // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy of // the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. /* eslint-env browser */ import { Message } from 'pigweedjs/protos/pw_protobuf_compiler/pw_protobuf_compiler_protos/nested/more_nesting/test_pb'; import { ProtoCollection } from 'pigweedjs/protos/collection'; describe('ProtoCollection', () => { it('getMessageType returns message', () => { const lib = new ProtoCollection(); const fetched = lib.getMessageCreator('pw.protobuf_compiler.test.Message'); expect(fetched).toEqual(Message); }); it('getMessageType for invalid identifier returns undefined', () => { const lib = new ProtoCollection(); let fetched = lib.getMessageCreator('pw'); expect(fetched).toBeUndefined(); fetched = lib.getMessageCreator('pw.test1.Garbage'); expect(fetched).toBeUndefined(); }); it('getDescriptorProto returns descriptor', () => { const lib = new ProtoCollection(); const fetched = lib.getDescriptorProto('pw.protobuf_compiler.test.Message'); expect(fetched.getFieldList()[0].getName()).toEqual('field'); }); it('getDescriptorProto for invalid identifier returns undefined', () => { const lib = new ProtoCollection(); let fetched = lib.getMessageCreator('pw'); expect(fetched).toBeUndefined(); fetched = lib.getMessageCreator('pw.test1.Garbage'); expect(fetched).toBeUndefined(); }); });