| // 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(); |
| }); |
| }); |