/** * @jest-environment jsdom */ // 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. import { pw_status, pw_hdlc, pw_rpc, pw_tokenizer, pw_transfer, WebSerial, } from '../dist/index.umd'; import { ProtoCollection } from '../dist/protos/collection.umd'; import * as fs from 'fs'; describe('Pigweed Bundle', () => { it('proto collection has file list', () => { const protoCollection = new ProtoCollection(); const fd = protoCollection.fileDescriptorSet.getFileList(); expect(fd.length).toBeGreaterThan(0); }); it('has pw_status enum defined', () => { const Status = pw_status.Status; expect(Status[Status.OUT_OF_RANGE]).toBeDefined(); }); it('has pw_hdlc frame, frame status, decoder and encoder defined', () => { expect(pw_hdlc.Frame).toBeDefined(); expect(pw_hdlc.FrameStatus).toBeDefined(); expect(pw_hdlc.Decoder).toBeDefined(); expect(pw_hdlc.Encoder).toBeDefined(); }); it('has pw_rpc defined', () => { expect(pw_rpc.Client).toBeDefined(); expect(pw_rpc.Rpc).toBeDefined(); expect(pw_rpc.Channel).toBeDefined(); }); it('has pw_tokenizer defined', () => { expect(pw_tokenizer.Detokenizer).toBeDefined(); expect(pw_tokenizer.PrintfDecoder).toBeDefined(); }); it('has pw_transfer defined', () => { expect(pw_transfer.Manager).toBeDefined(); }); it('has WebSerialTransport defined', () => { expect(WebSerial.WebSerialTransport).toBeDefined(); }); it('is not referring to any outside Pigweed modules', () => { const requireString = "require('pigweedjs"; const file = fs.readFileSync(require.resolve('../dist/index.umd')); expect(file.indexOf(requireString)).toBe(-1); }); });